-
Adresse des variables
Bonsoir à tous,
Je voulais savoir si il etait possible d'avoir toujours la même adresse pour la même variable par exemple la vie du joueur car je viens de voir avec Cheat Engine qu'il est possible de récuperer un pointeur qui à toujours la même adresse en mémoire même si ont redémarre le jeu.
Or j'ai toujours pensée que l'adresse etait donné dynamiquement par Windows donc si quelqu'un peut m'expliquer.
Merci d'avance.
-
la réponse est "oui et non".
Oui, pour la vue que le programme a de sa mémoire (mémoire virtuelle).
Non, pour la vue que l'OS a de la mémoire.
-
Merci mais tu peut m'expliquer plus en detail pourquoi ?
-
Disons que l'OS est prévu pour que chaque programme se croit seul au monde tant qu'il ne cherche pas explicitement à interagir avec les autres.
Ainsi, à moins d'options de sécurité comme l'Address Space Layout Randomization qui force des adresses aléatoires, le programme verra toujours les mêmes choses aux mêmes adresses (du point de vue de sa mémoire virtuelle) tout simplement parce qu'il n'y a pas de raison pour que ça change (les fichiers chargés sont toujours les mêmes et ont toujours la même taille).
Par contre, des mises à jour peuvent changer la taille des fichiers, etc. ce qui aura une répercussion sur la mémoire du processus.
-
Donc si j'ai bien compris chaque programme a lui-même 4 Go de mémoire virtuelle et stocke ses données dedans.
Dans ce cas, comment faire la différence entre une mémoire virtuelle et non virtuelle ? Par exemple avec (cout << &mavaraible;) cela affiche laquelle ?
http://www.gtamodding.com/index.php?...sses_(SA)#Cars