Donner une adresse à un pointeur...

cs_anosan Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 3 novembre 2004 - 11 août 2003 à 17:30
guiguikun Messages postés 92 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 octobre 2003 - 11 août 2003 à 19:53
Salut,
J'aimerais savoir comment spécifier à un pointeur quelle adresse il doit pointer (sachant que cette adresse n'est pas celle d'une variable!).
Merci.
A voir également:

11 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 août 2003 à 17:33
Salut,

void * pointeur;
pointeur = 0x.....; // l'adresse vers laquel ton pointeur pointera.

fait gaffe quand meme aux violations d'acces (ne pointe pas n'importe ou).
0
guiguikun Messages postés 92 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 octobre 2003 1
11 août 2003 à 18:00
Ce n'est pas la première fois que je vois ca dans un code source.
Quel est l'interet de pointer une adresse qui n'est pas une variable ? Qu'est-ce qu'on peut faire avec ? Pointer le stack ?
0
cs_anosan Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 3 novembre 2004
11 août 2003 à 18:08
Salut,
J'aivais bien essayé cette solution, mais mon compilateur (Borland C++ Builder6) donne le message d'erreur [C++ Error] Cannot convert 'int' to 'void *'.
Il comprend rien!! Et moi non plus!! pas lol :(
kk1 aurait une autre suggestion ?

> Salut,
>
> void * pointeur;
> pointeur = 0x.....; // l'adresse vers laquel ton pointeur pointera.
>
> fait gaffe quand meme aux violations d'acces (ne pointe pas n'importe ou).
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 août 2003 à 18:11
faut caster alors:

void * pointeur;
pointeur = (void*) 0x.....;
0

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

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 août 2003 à 18:16
Il fait des programmes qui écrivent un peu partout dans la mémoire et après il le distribue a tout le monde
0
cs_anosan Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 3 novembre 2004
11 août 2003 à 18:21
Ok, je sais pas si ca fait exactement ce que je veux, mais je peux compiler maintenant...
Merci !!

> faut caster alors:
>
> void * pointeur;
> pointeur = (void*) 0x.....;
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > J'aivais bien essayé cette solution, mais mon compilateur (Borland C++ Builder6) donne le message d'erreur [C++ Error] Cannot convert 'int' to 'void *'.
> > Il comprend rien!! Et moi non plus!! pas lol :(
> > kk1 aurait une autre suggestion ?
> >
> > > Salut,
> > >
> > > void * pointeur;
> > > pointeur = 0x.....; // l'adresse vers laquel ton pointeur pointera.
> > >
> > > fait gaffe quand meme aux violations d'acces (ne pointe pas n'importe ou).
> >
>
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 août 2003 à 18:26
Si ca plante ca sera pas a cause du (void*) mais plutot a cause de ton int qui sera pas une adresse mémoire valide.

Simple curiosité, tu va mettre quoi comme int et pour pointer vers quoi ? (c juste une question que je me pose :)
0
cs_anosan Messages postés 19 Date d'inscription samedi 8 février 2003 Statut Membre Dernière intervention 3 novembre 2004
11 août 2003 à 18:51
vecchio56, si c'est de l'humour que tu fais, on a pas le même!! Ce que tu decris, ca s'appelle un virus, et je ne fais pas là dedans!!
Pour repondre à guiguikun, pointer à une adresse qui n'est pas une variable permet de pointer justement où tu veux. Après, tu en fait ce que tu veux: ecrire n'importe où dans la memoire ( comme le dit si bien vecchio56), lire n'importe où, copier une partie (dump), faire des routine d'intégrité d'un process (infection virus), etc...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 août 2003 à 18:56
désolé d'avoir un humour si décalé et merci pour ce petit cours d'informatique.
0
guiguikun Messages postés 92 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 octobre 2003 1
11 août 2003 à 19:40
Euh moi quand je lis / ecris à un endroit qui ne m'appartient pas je me chope un joli plantage.

Peut-on voir le stack / heap d'une application grâce à ca ?
Comment trouver l'adresse du stack ?

* aimerait bien avoir un ptit exemple concret *
0
guiguikun Messages postés 92 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 octobre 2003 1
11 août 2003 à 19:53
Je viens de faire un test

void *ptr = (void *)0x0;
int *num;
while (ptr = (int *)ptr+1) {
num = (int *)ptr;
cout<<*num<<endl;
}

la ligne "cout<<*num<<endl;" plante. Comment faites-vous pour lire dans un bloc qui ne vous appartient pas ? Comment savoir si il est valide ou non ? (là a mon avis il n'est pas valide)
0
Rejoignez-nous