miximog
Messages postés34Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention14 avril 2007
-
15 nov. 2005 à 22:21
miximog
Messages postés34Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention14 avril 2007
-
16 nov. 2005 à 19:27
Bonjour a tous enfin bonsoir ;)
Enfaîte j'ai lu 2 tuto sur les pointeurs donc je commence a bien
comprendre la notion de pointeurs, mais il y a une notion qui reste
abstraite pour moi s'est les pointeurs de pointeurs en gros c sa "int
**p" fin le type peu changer, mais s'est pas se qui est
important...Je voudrais savoir en faite donc si :
m est un pointeur :
int *m
int *mmafonction(&m);
et que ma fonction est :
mafonction(int **p){
....}
Et bien je suppose que *p est donc la valeur de l'adresse de m
et **p est donc la valeur de l'adresse de la variable pointée par
m
et p c quoi ?
Es bien sa ? et étons obligés de faire comme cela ou un pointeur simple marche aussi bien .... pour pointé un pointeur
jul39dole
Messages postés117Date d'inscriptionmardi 22 juillet 2003StatutMembreDernière intervention21 janvier 2011 15 nov. 2005 à 22:39
int a -> variable int
int *b=&a -> pointeur, pointant sur a (b contient l'adresse de la case mémoire a)
int **c=$b -> pointeur de pointeur, pointant sur b (c contient l'adresse de la case mémoire b)
un pointeur c'est juste une valeur 32bit indiquant une adresse.
Le pointeur de pointeur sert surtout pour les tableaux de pointeur :
exemple avec les chaines de caractères :
char *a = new char[20];
strcpy(a,"bonjour");
char *b= new char[10];
strcpy(b,"salut");
char **m= new char*[2];
m[0]=a;
m[1]=b;
neodelphi
Messages postés442Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention11 août 2008 16 nov. 2005 à 07:12
Fait attention les pointeurs c'est bien mais c'est traitre... Par
exemple, renvoyer un pointeur d'entier depuis une fonction, tu ne peu
pas faire:
int* fonction(void)
{
int a;
a = 5;
return &a;
}
Dans l'idée c'est presque bon, mais en réalité, puisque a est un
entier déclaré dans ta fonction, lorsque la fonction se termine, la
mémoire est libérée et donc le pointeur renvoyé ne pointe plus sur
rien, ou du moins l'ancienne adresse de a. Bonjour les segmentation
fault...