Je comprends comment fonctionne malloc(). Ma question est la suivante : je vois des choses comme ça :
#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);
J'ai omis la vérification des erreurs pour des raisons de concision. Ma question est la suivante : ne pouvez-vous pas simplement faire ce qui précède en initialisant un pointeur vers un stockage statique en mémoire ? peut-être :
char *some_memory = "Hello World";
À quel moment devez-vous réellement allouer la mémoire vous-même au lieu de déclarer/initialiser les valeurs que vous devez conserver ?