cs_JediMaster
Messages postés91Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention31 août 2004
-
23 juin 2003 à 20:18
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 avril 2005
-
23 juin 2003 à 23:40
je veux crée une variable dynamique
je fait donc un pointeur et tous marche bien sauf que quelque chose me chifone voila mon code
int* variable = NULL;
variable = new int(0);
pour lire la variable j'ai appris qu'il fallait ecrire comme ca avec le "*" par exemple:
tableau[*variable];
alors maintenant je veux l'incrementer je fait comment?
ca?
*variable++
ou ca?
variable++
vous pouvez aussi expliquer la difference svp ;)
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 23 juin 2003 à 21:15
Tout depend ce que tu veit incrementer,
si tu veut incrementer l'entier (int), tu fais
"(*variable) ++;"
mais si tu veut incrementer le pointeur (pour aller au nombre suivant) tu fais
"variable ++;"
:-p :sleepy) :shy) :sleepy) :-p
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 23 juin 2003 à 22:03
et bien c'est simple.
variable est un pointeur sur un entier.
donc si tu veux incrementer l'entier (comme dans ton exemple) et bien il faut que tu incrementes ce qui est pointé:
donc :
int * variable = new int(2); // varaiable pointe sur l'entier 2.
si tu fais :
int i=(*variable)++;
alors i vaut trois.
par contre si tu fais *(variable++) alors variable va pointer sur quelque chose qu'on ne onnait pas ici.
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 avril 2005 23 juin 2003 à 23:40
Bon petit cours sur les pointeurs, si mes souvenirs sont bons:
type *pointeur;
pointeur = adresse ou pointe le pointeur
&pointeur = adresse du pointeur
*pointeur = élément pointé par le pointeur ( du type type:))
ex:
int *a;
{
in b=10;
a=&b; // a pointe sur l'adresse de b
// a = adresse de b
// &a= adresse du pointeur // *a b10
a++ pointe sur le int apres b
*a++ => b= 11
l'etoile est prioritaire devant les autres symboles
donc *(a++) != *a++