erreur avec free() - C - Programmation
Marsh Posté le 28-10-2017 à 16:29:58
Oui, vu que tu as modifié chaine (l'incrémentes en ligne 10), l'adresse fournie à free ne colle plus [avec celle obtenue du malloc].
Passes par une variable intermédiaire par exemple (p ici) :
Code :
|
Bon, ça manque de contrôle et compagnie.
Marsh Posté le 28-10-2017 à 16:34:02
pluj a écrit : Oui, vu que tu as modifié chaine (l'incrémentes en ligne 10), l'adresse fournie à free ne colle plus [avec celle obtenue du malloc].
|
Merci ! c'était donc bien ça le problème. (d'ailleurs je viens de tester, si je fais autant de *chaine-- que de chaine++ effectués avant de faire free() ça marche aussi).
Marsh Posté le 28-10-2017 à 15:39:05
Bonjour tout le monde,
J'utilise un pointeur pour transformer chaque char d'une chaine en int, chaine récupérée dans un fichier via la ligne de commande.
Tout va bien sauf quand je veux libérer la mémoire avec free :
*** Error in `test': munmap_chunk(): invalid pointer: 0x0000000000a7a018 ***
Peut-être parce qu'ayant parcouru la chaine... mais alors comment faire ? rembobiner ?
En esperant avoir été clair dans l'exposé de mon problème (je suis pas sur de l'avoir été!)... je remercie d'avance toute aide précieuse sur comment éviter ce message d'erreur ...