Allocation dynamique

cs_JediMaster Messages postés 91 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 31 août 2004 - 23 juin 2003 à 20:18
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 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 ;)

4 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
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
0
cs_JediMaster Messages postés 91 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 31 août 2004
23 juin 2003 à 21:31
"aller au nombre suivant"
ca veux dire quoi exactement??
moi je veu que ma variable = 1 soit apres l'incrementation egal a 2
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
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.
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 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++

JackosKing For EvEr
0
Rejoignez-nous