C++Avoir la valeur d'une var avec son adresse
Bonjour !
Je souhaite comparer une valeur avec la valeur de toutes les variables de la ram, et les modifier.
Comment faire pour trouver la valeur d'une variable quand on ne connait que son adresse ?
Par exemple avoir la valeur de la variable d'adresse 0x805f000.
Merci d'avance !
Je souhaite comparer une valeur avec la valeur de toutes les variables de la ram, et les modifier.
Comment faire pour trouver la valeur d'une variable quand on ne connait que son adresse ?
Par exemple avoir la valeur de la variable d'adresse 0x805f000.
Merci d'avance !
A voir également:
- C++Avoir la valeur d'une var avec son adresse
- Darkino nouvelle adresse - Guide
- Connaitre son adresse mac - Guide
- Comment connaître son adresse ip - Guide
- Créer une adresse hotmail - Guide
- Comment saisir une adresse url - Guide
5 réponses
En admettant que tu aies stocké dans un int * l'adresse d'un int (ca paraît un bon départ :p) il suffit d'utiliser l'opérateur unaire * :
Bonne chance
#include <stdio.h> int main(){ int x = 69; int *px = &x; int y = *px; printf("%d\n",y); return 0; }
Bonne chance
Dans l'exemple que je t'ai donné, px stocke l'adresse de x.
Pour accéder à la valeur à l'adresse px, il suffit d'appeler *px (ici je stocke cette valeur dans la variable y).
Bonne chance
Pour accéder à la valeur à l'adresse px, il suffit d'appeler *px (ici je stocke cette valeur dans la variable y).
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne comprends pas ce que tu veux faire ou ce que tu ne comprends pas. Quand tu as une adresse px, tu interprètes ce qui est à cette px en appelant *px.
- Si px est de type int *, alors *px est interprété comme un int.
- Si px est un char *, *px est interprété comme un char.
- Si px est int *** alors *px est interprété comme un int **, **px est interprété comme un int *, et ***px comme un int.
Si lorsque tu évalues *px, px n'est pas une adresse (valide), tu obtiens en général une erreur de segmentation.
Si *px est interprété dans un type qui fait par exemple 4 octets, alors qu'en fait la donnée en fait 1, tu obtiens en général une erreur de segmentation.
Tu n'es pas sensé accéder à la plage mémoire d'un autre programme.
Bonne chance
- Si px est de type int *, alors *px est interprété comme un int.
- Si px est un char *, *px est interprété comme un char.
- Si px est int *** alors *px est interprété comme un int **, **px est interprété comme un int *, et ***px comme un int.
Si lorsque tu évalues *px, px n'est pas une adresse (valide), tu obtiens en général une erreur de segmentation.
Si *px est interprété dans un type qui fait par exemple 4 octets, alors qu'en fait la donnée en fait 1, tu obtiens en général une erreur de segmentation.
Tu n'es pas sensé accéder à la plage mémoire d'un autre programme.
Bonne chance