IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

que fait la definition suivante : char **p


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut que fait la definition suivante : char **p
    Bonjour,

    Je suis novice en c. J'ai cru comprendre que char *p définissait un pointeur sur une zone char. Mais je n'arrive pas à comprendre ce que fait char **p

    Est ce que quelqu'un peut m'aider ?

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 082
    Par défaut
    C'est un pointeur de pointeur ...

    Un pointeur (char* par exemple) va pointer vers une variable (de type char).

    Un pointeur de pointeur (char**) va dabord pointé vers un pointeur (char*), ce dernier etant celui du dessus.

    Difficile d'expliquer ca clairement ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int main(void)
    {
        char variable = 'e';
        char *pointeur = &variable;
        char **pointeurDePointeur = &pointeur;
     
        printf ("%c\n", variable); 
        printf ("%c\n", *pointeur ); 
        printf ("%c\n", **pointeurDePointeur ); 
     
        return EXIT_SUCCESS;
    }
    voila, ce code valide permet d'afficher de trois maniere differente le caractere 'e'

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    ok, merci

    mais çà sert à quoi un pointeur de pointeur

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 082
    Par défaut
    En general, on utilise ca pour de l'allocation dynamique de tableau (avec la fonction malloc). A ce moment, le nombre '*' corresspond a la dimension max du tableau.

    char **Tableau = <.......>

    Cela pourrait etre un tableau 2D.

    Sinon, on peut passer par adresse dans une fonction pour changer la longueur d'un tableau 1D ....

    Bref, y'a plein de possibilité, encore faut-il maitriser l'allocation dynamique.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    Ok merci j'y vois un peu plus clair
    même si il ya des zones encore bien obscures!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ Eclipse3.0 ] Mais que fait le debogueur ?
    Par Bz dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 07/07/2005, 14h31
  2. Réponses: 9
    Dernier message: 27/03/2005, 23h29
  3. mais que fait upper_range() dans un multimap?
    Par porcher dans le forum C++
    Réponses: 7
    Dernier message: 18/02/2005, 22h21
  4. comment savoir ce que fait mon pointeur??
    Par elekis dans le forum C++
    Réponses: 9
    Dernier message: 30/11/2004, 12h42
  5. Mais que fait static ???
    Par elsargento dans le forum C
    Réponses: 4
    Dernier message: 25/09/2003, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo