-
probleme avec malloc
Bonjour,
j'ai un probleme avec malloc. Si j'ai un void **, et je fait malloc(10), est-ce que je retrouve NULL dans chaque casse?
j'ai fait des tests, mais je doit etre sur que a chaque fois c'est le cas. Si j'ai bien compris, malloc alloue de la memoire su la tas d'une processus, mais qu'est ce qui ce passe si avant sur cette zone de memoire il y avais des chose(libere avec free par example)?
Merci d'avance
-
Bonsoir,
Je ne pense pas dire beaucoup de bêtises en disant que malloc n'initialise pas la zone mémoire allouée. Elle peut être à zéro en debug (et encore, maintenant, ce n'est plus le cas), mais tu n'es pas garantit de ça. Tu ne dois pas t'appuyer là dessus.
-
malloc ne fait qu'allouer la mémoire pour que tu puisses l'utiliser et c'est tout !
C'est à dire que la mémoire n'est pas initialisée, donc tu n'as aucune certitude que cette mémoire soit à 0.
Pour initialiser ta mémoire à 0 tu peux utiliser calloc au lieux de malloc et dans ce cas tu seras sûr que ta mémoire est initialisée ;)
-
Moi aussi je crois que malloc n'initialise pas la memoire, mais est ce qu'on est sur que tant qu'on pas fait aucun ecriture dans cette memoire, est ce que'il a une mecanisme deriere qui nous confirme que si on teste si elle est a null, on obtiendra a chaque fois une reponse "vrais"?
-
Comme dit plus haut si tu veux que ta mémoire "soit à NULL" tu peux utiliser calloc !
-
et ca, ca veux dire qu'il faut que je change mon projet en entier :)
bon merci bcp. bon soire