Langage C

Résolu
Makon Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11653 Statut Contributeur -
bonjour ,
j'aimerai savoir comment créer une variable dynamique en utilisant les pointeurs dans le langage C. Si vous pourriez me donner la declaration du pointeur et la definition de la variable dynamique. je serais tres heureux.merci a vous
A voir également:

2 réponses

Xelored Messages postés 33 Statut Membre 3
 
salut, vas sur le site du zéro.
Dans la rubrique "langage C", c'est la partie 2 du cours. Tu y trouveras un cours très complet, sympa et simple.

Mais les pointeurs, c'est assez compliqué, alors ne t'attends pas à un miracle non plus^^
1
Nabla's Messages postés 20731 Statut Contributeur 3 193
 
C'est pas que c'est compliqué, c'est que c'est difficile à apréhender. En gros, il faut un moment à assimiler le concept, les tenants et aboutissants, mais une fois qu'on connais, ca coule sous le sens.
0
Xelored Messages postés 33 Statut Membre 3
 
mouais, c'est plutôt ça, oui^^
0
Nabla's Messages postés 20731 Statut Contributeur 3 193
 
c'est pas très compliqué.
on va dire qu'on veut faire uen variable dynamique de type entier:
int* mon_pointeur;
L'étoide signifie que c'est un pointeur.
Donc là on a un pointeur, mais qui ne pointe sur rien. Pour allouer de la mémoire à ce pointeur, on va faire ceci:
mon_pointeur = new int;

le new int crée dynamiquement la variable...

en une ligne on peux faire
int* mon_pointeur = new int;
(je pense que ca passe).

pour avoir le contenu de la variable, il faudra utiliser *mon_pointeur, alors que pour avoir l'adresse de la variable, tu utiliseras mon_pointeur

tu auras des explications et cours sur le siteduzero
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Juste pour apporter une précision :
int *pointeur=malloc(sizeof (int)); /*pas de new en C, ainsi Nabla's :-p.*/
pointeur contiendra l'adresse d'une case mémoire de type int. Et *pointeur pointera sur cette case.
Ainsi, cela permet de modifier la valeur des arguments en envoyant l'adresse mémoire.
Bien sûr, à la fin, il ne faut pas oublier de libérer la case par un simple : free(pointeur);
Cdlt,
0
makon
 
merci .ta proposition repond a mes attentes
0
Nabla's Messages postés 20731 Statut Contributeur 3 193
 
oups, désolé pour l'isntruction de C++.
je vais completer alors jusqu'ua bou tpoour la partie C++ (vu que t'as corrigé en donnant tout le C), j'équivalent du free(pointeur) est delete pointeur en C++.
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Pas grave, je te taquinais ;-))).
0