POUR LES DEBUTANTS : ALLOCATION DYANAMIQUE DE MEMOIRE POUR UN TABLEAU A 2 DIMESN

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 - 1 mai 2003 à 23:21
t2bs Messages postés 1 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 19 juin 2003 - 19 juin 2003 à 18:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10716-pour-les-debutants-allocation-dyanamique-de-memoire-pour-un-tableau-a-2-dimesnsions-en-c-tout-compilateur

t2bs Messages postés 1 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 19 juin 2003
19 juin 2003 à 18:52
Merci, y a toujours des débutants. C'est bien de penser à nous ;-)
On se sent moins seul!!!
Bybydjou Messages postés 8 Date d'inscription mercredi 16 octobre 2002 Statut Membre Dernière intervention 10 février 2005
4 mai 2003 à 15:49
la fonction free() libere la memoire alloué a la variable qui lui est passe en argument, rien de plus, donc vu que tab est un tableau de pointeur, ce qui est libéré c est l espace alloué pour stocker les pointeurs, ce qui fait que les espaces memoires vers lesquels pointent tous ces pointeurs ne sont pas, eux, desalloués
bon, je sais pas si je suis tres clair, mais j espere que ca t aidera
cs_Black Night Messages postés 44 Date d'inscription jeudi 5 octobre 2000 Statut Membre Dernière intervention 21 juin 2003
2 mai 2003 à 17:49
Comme quoi on en apprend tous les jours ! OK merci les gars je n'étais pas au courant (d'ailleaurs je ne m'étais jamais posé la question de comment libéré la mémoire, je faisais toujours free (tab).)
Mais pourtant avec mon compilateur (gcc sous linux) ca marche sans problème. Pourriez-vous m'expliquer pourquoi. Merci d'avance.
Bybydjou Messages postés 8 Date d'inscription mercredi 16 octobre 2002 Statut Membre Dernière intervention 10 février 2005
2 mai 2003 à 01:29
oui, Kaid a raison, mais il y a une seconde erreur, tu ne verifie pas l allocation de la seconde dimension
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
1 mai 2003 à 23:21
Tu as une erreur lors de la désallocation de la mémoire. Avant de libérer le tableau 'tab' il faut libérer la mémoire allouée pour chaque élément du tableau.
Rejoignez-nous