Problemme de pointeur

Résolu
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011 - 10 juil. 2010 à 08:24
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011 - 11 juil. 2010 à 19:31
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

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
10 juil. 2010 à 19:23
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.
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 juil. 2010 à 21:28
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
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 juil. 2010 à 09:54
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 juil. 2010 à 11:57
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011
10 juil. 2010 à 17:56
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?
0
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011
10 juil. 2010 à 19:11
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.
0
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011
10 juil. 2010 à 19:33
Dac merci je regarde ca et je tant di des nouvelles.
0
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011
10 juil. 2010 à 19:41
J'ais oublier un truc je suis sur windows ><.
0
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011
11 juil. 2010 à 07:21
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+.
0
malefitrix Messages postés 42 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 27 juillet 2011
11 juil. 2010 à 19:31
MERCI
0
Rejoignez-nous