Bonjour,
Je ne comprends pas pourquoi les adresses mémoires retournée pour une variable sur la pile et allouée dynamiquement dans un même processus ne sont pas semblables.
Le programme en fin de message donne le résultat suivant:
adresse stack : 0x7fff3a3c2274
adresse heap : 0x602010
Pourquoi l'adresse du heap n'est pas en 0x7fff3a3cXXXX
Le 0x602010 s'agit-il d'une clé associée à une "vraie" adresse mémoire, au quel cas qu'on fait un memcpy() sur un bout de mémoire dynamique ai-je pour chaque octet ce mécanisme de traduction de la clé vers la "vraie" adresse (je serai surpris, d'où mon incompréhension) ?
Merci à vous
Voici le programme qui me génère le message en gras donné plus haut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdlib.h> #include <iostream> using namespace std; int main(void) { int valeur; int * pointeur = new int(); cout << "adresse stack : " << &valeur << endl; cout << "adresse heap : " << pointeur << endl; return 0; }
Partager