Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008
-
28 août 2006 à 16:39
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
28 août 2006 à 18:50
Bonjour,
J'ai une petite question, c'est pas vraiment un probleme de code mais plutot de théorie. Imaginez qu'en global j'ai déclaré un pointeur vers une structure à qui j'alloue de l'espace mémoire avec HeapAlloc() que j'ai par exemple appelé lpGlobal. Ensuite dans une procédure, je crée un pointeur vers une structure, mais je ne l'initialise pas avec HeapAlloc mais je fais ceci :
Pointeur = lpGlobal
Il prend l'adresse de la structure, aucun soucis. Je voudrai savoir comment détruire Pointeur sans détruire l'espace mémoire occupé par lpGlobal.
J'arrive pas à bien m'exprimer lol. Posez moi vos questions si vous ne comprenez pas la mienne.
Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008 28 août 2006 à 17:03
Justement c'est la question que je me pose. Est-il utile de le détruire ? Occupe-t-il de la place mémoire ? Je pense comme toi que non mais il doit bien exister quelque part vu qu'il arrive à contenir une adresse non ?
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 28 août 2006 à 17:04
Salut,
Un pointeur est tout simplement une variable qui contient l'adresse mémoire d'une autre variable. Dans ton cas il s'agit d'une structure. Pour rendre un pointeur inutilisable il suffit de lui affecter la valeur 0.
pointeur =0;
Dans ton code tu fais les tests nécessaires pour que ce pointeur ne soit pas utilisé tant qu'il est nul.
Ainsi, le pointeur est inutilisable mais la zone mémoire allouée est toujours accessible avec l'autre pointeur.