Ecrire à une adresse spécifique
Bonjour,
Je croyais que ce problème était banal mais d'après mes recherches sur google comme sur le forum, il semblerait que ce ne soit pas aussi simple que ça.
Je veux juste écrire à une adresse précise en mémoire. J'essaie donc tout simplement :
Code:
1 2 3 4 5
| int *adr;
adr=0xbfbc7e20;
*adr=1234;
printf("L adresse ", adresse , "contient la valeur %x\n", *adresse);
return 0; |
Quand je lance tout paraît correct sauf que, si je suis le déroulement sous debugger, il n'y a pas du tout la valeur attendue à l'adresse 0xbfbc7e20.
Donc ma question est : Est-il possible de choisir soit même l'adresse du pointeur ou pas ?
réf. : http://www.developpez.net/forums/d10...s/#post5859424 post dans lequel souviron34 dit :
Citation:
NON !!
Tu ne PEUX PAS définir toi-même le pointeur d'une variable..
et pseudocode répond :
Citation:
Techniquement, on peut le faire en C.
Impatient de vos réponses :)
Plug
"Techniquement c'est possible"
Tout d'abord, merci de vos réponses
@pyros : non l'adresse n'appartient pas au prog mais pourtant l'OS ne me jette pas 8O
Citation:
Quand je lance tout paraît correct
@emmanuel : Je choisis une zone mémoire régulièrement allouée par les programmes, ça ne pose donc plus trop de soucis (après quelques segfault :aie: ). Que l'allocation se fasse en physique ou en virtuel peu m'importe. J'aimerai juste retrouver sous debugger à l'adresse choisie ce que j'y ai mis dedans (histoire de comprendre un peu ce qui se passe :mrgreen:).
Petite précision : je suis sous Debian.
D'autre part tu dis :
Citation:
Techniquement, c'est possible.
Peux-tu développer STP ? Notamment, vois-tu une erreur dans mon code ?
Encore merci pour ta longue contribution
Plug