[pointeur] Tester la validité
Bonjour à tous :D
Voilà mon problème : J'ai dans mon appli une fenêtre avec des onglets, sur lesquels je charge des images. les données sont stockés dans des char *, dont je transmets les valeurs à la fenêtre pour qu'elle les affiche.
Evidemment, il faut que je désalloue la mémoire, mais quand je vais sur un autre onglet, Windows (enfin les MFC) a déjà désallouer la mémoire pour les photos qui se trouvent sur cet onglet.
Je teste en faisant
Code:
1 2 3
|
if(photo.data)
delete []photo.data; |
Mais ça ne fonctionne pas. Comment je peux tester ce pointeur pour savoir si l'adresse est toujours valide ou pas ?
Merci :D
Re: [pointeur] Tester la validité
Plutot qu'un pointeur sur un char*, essaie d'inserer un objet ayant un constructeur et un destructeur, et affiche un message sur stdout dans chacun d'eux. De cette facon tu verra precisement si un delete se fait sans que tu le sache.
Citation:
Envoyé par Luffy Duck
Je teste en faisant
Code:
1 2 3
|
if(photo.data)
delete []photo.data; |
Juste une petite note: Il est inutile (mais surtout redondant) de tester pour un pointeur null avant de faire un delete dessus. Le standard C++ dit bien que delete fait deja cette verification a l'interne.