malloc puis free.... - C - Programmation
Marsh Posté le 09-04-2005 à 05:13:14
Tu n'alloues pas la bonne taille. Quel est le type de Zd ? quel est le type de Zd[j] ? En pratique ce n'est pas ça qui pose problème car sur ton architecture les int ont probablement la même taille que les pointeurs... Mais c'est faux.
Ensuite, ton tableau fait apparemment n par n par n. Or ta boucle sur k vas de 0 à 0... Si tu libère de 0 à n (ce qu'on ne peut pas savoir puisque tu n'a pas posté le code des free), forcément ça va planter.
Marsh Posté le 09-04-2005 à 06:33:38
Salut,
Avec ton code :
Code :
|
Tu ne libères pas tes tableaux. Si on part du principe que j=k=n alors tu essayes de désallouer quelque chose qui ne t'appartient pas (ton tableau occupe [0->(n-1)][0->(n-1)][0->(n-1)]. De plus en faisant ça tu ne libérerais que 3*n éléments.
Essayes ça :
Code :
|
Marsh Posté le 09-04-2005 à 08:41:30
Biroute a écrit : |
Essayer de comprendre ce qu'est un pointeur ? Qu'est-ce qui a guidé ton choix lorsque tu écris:
|
Tu crois sincèrement qu'un pointeur a la taille d'un int ou t'as simplement oublié de secouer ton neurone avant de t'en servir ?
http://mapage.noos.fr/emdel/notes.htm#pointeurs
http://mapage.noos.fr/emdel/notes.htm#malloc
|
Marsh Posté le 09-04-2005 à 12:33:24
Taz a écrit : faut pas faire les exo Emmanuel |
Quel exo ? Je ne vois qu'un carré blanc...
Marsh Posté le 09-04-2005 à 03:04:12
voila, g un petit problème de malloc.
je veux faire un tableau à 3D dans une fonction:
cette fonction ira dans le main
mais je n'arrive pas à trouver de solution pour libérer la mémoire à la fin, g essayé ça dans tous les sens:
ça compile, mais ça plante!
sans les free, ça plante pas.
j'utilise dev c++, mais je dois utiliser le .c dans une vieille station linux...
quelqu'un aurait une solution? merci
---------------
Ma vie en Polonie: http://ketchupnchantilly.blogspot.com/