[C] -> Problème de free()
Fermé
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
-
13 déc. 2008 à 18:39
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 - 13 déc. 2008 à 22:12
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 - 13 déc. 2008 à 22:12
A voir également:
- [C] -> Problème de free()
- Word 2013 free download - Télécharger - Traitement de texte
- Sketchup free - Télécharger - 3D
- Free ocr - Télécharger - Divers Bureautique
- Free office - Télécharger - Suite bureautique
- La consultation de ce compte vous est refusé free - Forum Free mobile
13 déc. 2008 à 19:16
ouai j'aimerai éviter de mettre le code
d'une part car c'est un projet pour ma fac ...
et de deux y a plus de 600lignes a mettre =/
mais y a autant d'alloc que de free
Et je sais bien que je free pas le bon pointeur ...
j'm'explique :
je pointe une Équipe contenant des fourmilières ( liste doublement chainées )
je veux free une fourmilière mais en gardant mon pointeur sur l'Equipe,
Au debut j'envoyai le vrai pointeur et faisais un Temp de mon Équipe, il me perdait mon pointeur ...
j'avais la meme erreur ... ( Mais j'arrive pas a free tout )
La j'ai envoyé une copie du pointeur et pareil
et meme en faisant un Temp de la copie de mon pointeur ...
Y a rien a faire il me perd mon pointeur et me met en plus ce message d'erreur -__-
13 déc. 2008 à 21:09
Si j'ai bien compris:
- Equipe contient une liste de Fourmilières et il faut supprimer une Fourmilière.
- il suffit de récupérer, dans la liste, le pointeur de la Fourmilière voulue, de supprimer cette entrée dans la liste et ensuite de libérer la mémoire désignée par ce pointeur.
13 déc. 2008 à 21:37
Et ca fonctionne très bien si je lance cette fonction dans le main ...
mais pas si je lance la fonction dans une autre fonction =/
( et disons que la partie un peu plus marrante vient du fait que
chaque fourmilière est une tête de liste doublement chainée )
et encore merci de t'intéresser a mon problème :)
13 déc. 2008 à 21:51
Si j'avais ce problème, voilà comment je réagirais:
- la fonction ne fonctionne pas tout le temps ---> donc elle est incorrecte.
- et si elle fonctionne dans le main, c'est tout simplement que les problèmes de pointeurs sont des problèmes souvent aléatoires; c'est-à-dire qu'une telle erreur ne se manisfeste que dans certaines conditions et pas toujours. Il arrive qu'une erreur de ce type arrive systématiquement dans le déroulement du programme, alors on passe sous debugger... et l'erreur ne se manisfeste plus! C'est la raison pour laquelle il faut être des plus rigoureux dans l'utilisation des pointeurs et c'est aussi la raison pour laquelle, certains ont horreur des pointeurs.... et du language C (pour moi c'est la meilleur!!!).
A moins de voir le code, je ne peux en dire plus (mais j'ai pas non plus envie de déchiffrer 600 lignes de code).
13 déc. 2008 à 22:12
tout d'abord les structure
puis les fonctions
Voila, si tu vois l'erreur Oo