problème désallocation mémoire (résolu) - C - Programmation
Marsh Posté le 08-11-2004 à 15:03:42
euh c'est quoi le problème ? c'est quand tu veux afficher une ligne qui est nulle ?
Si c'est le cas c'est normal, car quand tu déclare une ligne et que tu ne l'as pas encore initialisée (i.e. pas encore fait de malloc) l'OS lui attribue un emplacement mémoire déclaré comme libre, et il se peut qu'il y ait des résidus, d'où l'importance de toujours initialiser lorsque l'on veut utiliser la variable
Marsh Posté le 08-11-2004 à 15:09:57
c'est bien et alors ? t'as rien compris aux pointeurs. le passage de paramètre en C se fait par copie. T'auras beau passer un ligne*, ça mettra pas ton truc à NULL dans le contexte appelant.
Marsh Posté le 08-11-2004 à 15:23:05
Taz -> en effet, je viens d'essayer de mettre mon free directement dans le programme main et ça roule Le problème vient donc bien du passage de paramètre par copie.
Comment je peux faire une fonction de destruction dans l'esprit de ce que j'ai fait plus haut ?
Marsh Posté le 08-11-2004 à 15:29:52
c'est bon c'est résolu
j'ai changé ma fonction destruction par :
Code :
|
merci
Marsh Posté le 08-11-2004 à 15:48:38
et si tu passais un ligne ** tout simplement?
au moins là tu pourras le modifier ton pointeur
Marsh Posté le 08-11-2004 à 15:54:16
je vois pas l'intérêt
tu fais
desstruction(ma_ligne); ma_ligne = NULL; si nécessaie
Marsh Posté le 08-11-2004 à 14:24:34
Salut
J'ai un problème après une désallocation mémoire d'une structure de données : caractères bizarres et je comprends pas pourquoi
Voilà mon code :
la structure de données :
La fonction qui permet d'afficher le contenu d'une ligne :
Le résultat quand je veux afficher le contenu d'une ligne devrait être null mais il m'affiche n'importe quoi :
Merci de m'aider
Message édité par nast le 08-11-2004 à 15:32:29