Я понимаю, как работает malloc(). Мой вопрос: я увижу такие вещи:
#define A_MEGABYTE (1024 * 1024)
char *some_memory;
size_t size_to_allocate = A_MEGABYTE;
some_memory = (char *)malloc(size_to_allocate);
sprintf(some_memory, "Hello World");
printf("%s\n", some_memory);
free(some_memory);
Я пропустил проверку ошибок для краткости. Мой вопрос: не можете ли вы просто сделать это, инициализируя указатель на некоторое статическое хранилище в памяти? возможно:
char *some_memory = "Hello World";
В какой момент вам действительно нужно выделить память самостоятельно, а не объявлять/инициализировать значения, которые необходимо сохранить?