Langage C

Résolu
Makon Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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

2 réponses

  1. 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
    1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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
    2. Xelored Messages postés 33 Statut Membre 3
       
      mouais, c'est plutôt ça, oui^^
      0
  2. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   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
    2. makon
       
      merci .ta proposition repond a mes attentes
      0
    3. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Pas grave, je te taquinais ;-))).
      0