URL: https://linuxfr.org/forums/programmation-c--2/posts/effacer-un-pointeur-fournit-par-une-librairie-externe Title: Effacer un pointeur fournit par une librairie externe Authors: Mais qui suis-je ? :) Date: 2010年11月10日T15:21:41+01:00 Tags: Score: 1 Salut, J'ai un code en C++ qui appelle une libraire C qui me retourne un tableau while(...){ tmp tab =GetMachinTruc() //DoSomething } où GetMachinTruc vient de la librairie C dans le code de UINT16* GetMachinTruc() tab=malloc()... return tab Donc j'ai donc mon tmptab qui est alloué dans GetMachinTruc ce qui me donne sachant que je suis dans une loop une grosse fuite de mémoire. Si je fait while(...) { UINT16* tmptab=GetMachinTruc //Do Something with tmptab free(tmptab) } J'ai droit a une superbe _ Segmentation fault _ pareil si j'utilise delete (car je le rapelle mon code est en C++ c'est la librairier qui est en C) C'est là ou je me rend compte qu'en fait je suis à la masse sur la gestion de la mémoire, entre multiple fonction -Est il autorisé d'éffacer un pointeur alloué ailleur ? Si non pourquoi le compilateur n'a rien dit ? -Y a t'il d'autre vérification à faire avant ? Merci à tous P.S. //Do something correspond à copier le pointeur dans un container civilisé (un vecteur) qui lui même est propagé par référence dans tout le code.