Allocation dynamique

none77 Messages postés 31 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004 - 6 mai 2003 à 12:10
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 7 mai 2003 à 06:22
Bonjour,

j'ai un petit prog dans lequel j'utilise deux tablo dynamiques (j'utilise malloc() )
A la fin je dois donc faire des free().
Mon pb est ke lorsque que j'exécute mes free() mon prog plante carrément !
Kelkun a -til déjaà u ce pb?

j'arrive a ne pas faire planté mon prog si je mets les free après le return(). Mais dans ce cas les free() ne sont pas exécutés et c'est pour ca ke ca ne plante po ? non?

merci
None.

4 réponses

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
6 mai 2003 à 13:01
C'est sûr que si tu mets du code après "return" rien ne se passe car le code n'est pas exécuté.
Ton problème peux venir du fait que tu libéres de la mémoire déjà libérée ou que tu essayes de libérer de la mémoire que tu n'as pas alloué avec malloc().

Kaid - kaid.fr.st
0
none77 Messages postés 31 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004
6 mai 2003 à 14:02
Ok donc avoir deux tablo alloué dynamiquement dans un meme prog ne pose po de pb?

Merci,
None.
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
6 mai 2003 à 15:06
Non pas du tout, tu peux en allouer autant que la mémoire le permet.

Kaid - kaid.fr.st
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
7 mai 2003 à 06:22
Ton pointeur que tu passes à free est peut-être nul.
Tu dois faire:
if( ptr )
free(ptr);


Core Breaker :)
0
Rejoignez-nous