Problème avec les pointeurs

Signaler
Messages postés
49
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
10 novembre 2007
-
Messages postés
49
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
10 novembre 2007
-
Bonjour,

Je cherche à utiliser un pointeur en lui fournissant une adresse, dans le but d'acceder une variable d'un autre programme , mais ça ne marche pas :
Dans ma source :

int* ptr;
Console.Write("Entrez une adresse : ");
ptr=(int*)int.Parse(Console.ReadLine());
Console.WriteLine("Adresse : {0} Valeur : {1}",(int)ptr,*ptr);

L'autre programme que j'ai fais me donne l'adresse de la variable :

Random rd=new Random();
int nbr=rd.Next(1000);
Console.WriteLine("Adresse : {0}",(int)&nbr);

Lorsque je lance le premier programme, en lui fournissant l'adresse, il m'affiche un nombre mais ce n'est pas celui qui est dans la variable du second, je ne comprend pas pourquoi...
Framework SDK v1.1

4 réponses

Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
Lorsque tu lance le "programme du haut", es tu sur que la variable "int nbr" définie dans le "programme du bas" est toujours visible ?

Si ce n'est plus le cas, le garbage collector est peut être passé par là entre temps... Pourquoi as tu besoin de manipuler des pointeurs en c# ?
Messages postés
49
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
10 novembre 2007

Non, en faite ce sont deux programmes differents, le second est un jeu dans lequel il faut trouver un nombre entre 1 et 1000, le premier je l'utilise pour "tricher", et connaitre la valeur de nbr, comme l'adresse de nbr ne change jamais, je voudrais retrouver la valeur qu'il contient en ayant son adresse.
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
Je ne pense pas que windows t'autorise à accéder à la mémoire de ton programme 1 depuis ton programme 2.... et heureusement d'ailleur ! Donc je te conseillerai t'utiliser une autre technique, comme écrire le nombre en question dans un fichier (crypté ?) pour pouvoir le "partager" avec ton autre programme.
Messages postés
49
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
10 novembre 2007

Ok, en fait, j'ai trouvé un programme (RAM Cheat) qui permet de modifier les valeurs dans la mémoire et il marche très bien, et je voulais essayer de faire la même chose en C#. Voila. Merci quand même.