Problème pointeurs toujours pareils

Résolu
Roro8883 Messages postés 70 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 1 février 2008 - 28 sept. 2007 à 23:55
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 29 sept. 2007 à 11:19
Bonjour à tous, y'a un truc que je comprends pas à propos des pointeurs dans le code suivant :

   int value = 33;
   int* pvalue = &value;
  
      // Affichage de l'adresse du pointeur
   printf ("Adresse pointeur : -%x-\n\n\n", pvalue);
  
       // Affichage du "contenu" du pointeur (vers où il pointe)
   cout << "Contenu du pointeur : -" << *pvalue << "-\n\n\n";

Ce que je comprends pas, c'est que quand je lance plusieurs le programme (sans fermer les anciens, je les laisse ouvert pour garder value en mémoire) et bien l'adresse du pointeur est toujours là même, et vaut tjrs la même valeur !

Normalement ça derait changer d'adresse à chaque nouvelle exécution, non ?!

Si quelqu'un pouvait m'expliquer pourquoi l'adresse du pointeur est toujours  la même...

Merci

2 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 sept. 2007 à 11:19
Si tu redémarres ton pc ca sera exactement pareil. Ta variable est alloué sur la pile. Or ton programme ne change pas d'une exécution a l'autre, donc  l'adresse sur la pile est toujours la meme.

Chaque exécution de ton programme est un nouveau processus et chaque processus travail dans une mémoire séparée fournie par windows. Donc l'adresse réel de ta variable dans la ram change a chaque fois, mais le décalage entre le début de la pile de ton processus et ta variable est toujours le meme !
Donc c'est normal que l'adresse soit toujours la meme.
3
agent 047 Messages postés 5 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 18 juin 2008
29 sept. 2007 à 00:37
Si l'adresse est toujours la même c'est à cause du noyau de ton OS qui a memorisé l'emplacement de ton programme dans la ram.
Pour voir l'adresse de ton pointeur changé, il faut redémarrer le PC.
0
Rejoignez-nous