begin process at 2008 07 06 15:23:45
1 205 598 membres
168 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pointeurs ... [ Windows / GUI ] (Ziman)

Pointeurs ... le 28/08/2006 16:39:29

Ziman
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.

Merci :p

Apprendre le VB6

Re : Pointeurs ... le 28/08/2006 16:59:49

Joky
Membre Club
Réponse acceptée !
Ben Pointeur n'a aucune mémoire alloué
Il pointe juste vers l'addresse de ta structure donc tu n'as rien à détruire je suppose
Tu peux toujours faire

Pointeur = NULL;

ULARGE_INTEGERJokyQi=QI("Joky"


Re : Pointeurs ... le 28/08/2006 17:03:25

Ziman
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 ?

Apprendre le VB6

Re : Pointeurs ... le 28/08/2006 17:04:54

racpp
(Admin CS)
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.

Re : Pointeurs ... le 28/08/2006 17:09:51

racpp
(Admin CS)
Un pointeur ne prend que 4 octets quelque soit la taille de la zone mémoire allouée.



Re : Pointeurs ... le 28/08/2006 17:15:44

Ziman
Merci, c'est la réponse que j'espérais, merci

Apprendre le VB6

Re : Pointeurs ... le 28/08/2006 18:50:33

luhtor
Si tu alloues ton pointeur dynamiquement, il faut le libérer. Dans le cas contraire, tu n'as rien a faire:

{
int * pointeur; <= RIEN a faire pour le libéré, il est détruit a la fin du bloc
}

{
int ** pointeur = new int*; <= un delete s'impose

delete pointeur;
}




Classé sous : espace, mémoire, structure, pointeurs, pointeur

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS