Problemme de pointeur [Résolu]

Signaler
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011
-
malefitrix
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011
-
Bonjour a vous,donc je vous explique.



int main()
{
unsigned int *test=2293516;//l'adresse ou ce trouve la variale toto (prog2)




printf("%p %u %d",test,test,*test);//afiche le tout

*test=55;//change la valeur a l'adresse de toto (prog 2)

system("pause");
return 0;
}


-------------------------------------------------prog 2

int main()
{
int toto=300;//son adresse = .........


while(1)//on atend que le programme 1 change la valeur de toto (boucle infini).
{
printf("%d %p %d\n",toto,&toto,&toto);//pour savoir son adresse.
Sleep(100);
}
return 0;
}


Donc voila aprais cela la valeur de toto serais suposer changer mes ca ne marche pas meme ci je mes toujours la bonne adresse a chaque execution des programmes,donc coi faire?


merci de votre ecoute et a+.

10 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
Salut,

a plante ou ca ne marche pas.

C'est tout à fait normal. Si ton processus essaye d'accéder à de la mémoire qui appartient à quelqu'un d'autre, la conséquence sera de te prendre immédiatement un SIGPIPE dans la tronche. C'est normal et essayer de contourner ça est un extrêmement mauvaise idée directement liée à divers échecs cuisants. Comme l'a fait remarquer à très juste titre vecchio56, il existe de la mémoire partagée pour pouvoir partager de la mémoire entre plusieurs processus (regarde donc les pages de man des fonctions ftok, shmget, shmat, shmdt, shmctl, semget, semop, semctl, etc). Tu trouveras également d'autres moyens de communication entre les processus, communément appelés IPC.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Si tu as besoin d'écrire dans la mémoire d'un processus que tu ne maitrises pas (d'après ce que j'ai compris c'est ce que tu veux faire), la mémoire partagée ne répond pas à ton problème.
Pour pouvoir lire/écrire dans la mémoire d'un autre processus, regarde les fonctions ReadProcessMemory et WriteProcessMemory


_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Bonjour,

L'espace d'adressage est propre à chaque processus, donc ton premier programme ne peut pas modifier une variable de prog2.
Si tu veux partager des données entre deux processus, tu peux utiliser par exemple de la mémoire partagée.


_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011

je vais faire des recherche sur la memoire partager,mes sinon je voudrais plus faire comme cheat engine il change la valeur contenue dans l'adresse d'un X programme mes moi quand jessai ca plante ou ca ne marche pas.

Y a t'il donc pas un moyen pour modifier les adresses sans qu'il est de prob?
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011

Je n'arive pas a trouver des truc potables sur la memoire partagee tu n'aurais pas des lien, et merci pour la reponce plus haut.
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011

Dac merci je regarde ca et je tant di des nouvelles.
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011

J'ais oublier un truc je suis sur windows ><.
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011

Ses super merci ca marche nikel!

Hey mes pour la memoire partagee tu aurais pas un lien parce que je trouve pas sur Google et ca minteresse.


Merci a tous pour l'aide apporter a+.
Messages postés
42
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
27 juillet 2011

MERCI