C++Avoir la valeur d'une var avec son adresse
Fermé
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
-
21 sept. 2009 à 20:29
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 23 sept. 2009 à 18:53
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 23 sept. 2009 à 18:53
A voir également:
- C++Avoir la valeur d'une var avec son adresse
- Rechercher ou entrer l'adresse - Guide
- Darkino nouvelle adresse - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Créer une adresse hotmail - Guide
- Adresse mac - Guide
5 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
21 sept. 2009 à 21:03
21 sept. 2009 à 21:03
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
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
22 sept. 2009 à 19:40
22 sept. 2009 à 19:40
Si j'ai bien compris je met l'adresse de la variable dans x ?
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
22 sept. 2009 à 21:38
22 sept. 2009 à 21:38
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
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
23 sept. 2009 à 15:37
23 sept. 2009 à 15:37
Donc avec ça je ne peux pas partir avec juste l'adresse d'une variable d'un autre programme ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
23 sept. 2009 à 18:53
23 sept. 2009 à 18:53
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