• # pointer sur un membre du tableau

    Posté par . En réponse au message tableau,structure,pointeur.. Évalué à 5.

    Il suffit de pointer sur un membre du tableau:

    #include <stdio.h>
    #include <string.h>
    #define MAX_RESERVE_NOM 21
    #define MAX_NOM (MAX_RESERVE_NOM - 1)
    #define FAMILLE_SIZE 10
    struct famille
    { 
     int age;
     char surnom[MAX_RESERVE_NOM];
     char nom[MAX_RESERVE_NOM];
    };
    /* pour le confort */
    typedef struct famille* familleptr;
    /*-----------------------*/
    void changement(familleptr m)
    { 
     m->age=18;
     /* strncpy: pour ne pas deborder */
     strncpy(m->surnom,"plouf6789ABCDEFGHIJKZZZZ",MAX_NOM);
     strncpy(m->nom,"plaf",MAX_NOM);
    }
    /*-----------------------*/
    int main(void)
    {
     struct famille membre[FAMILLE_SIZE]={ 
     {10,"pif","paf"},
     {11,"dede","lulu"},
     {12,"",""},
     {13,"",""},
     {14,"",""},
     {15,"",""},
     {16,"",""},
     {17,"",""},
     {18,"",""},
     {19,"",""}
     };
     strncpy(membre[2].surnom,"pof",MAX_NOM);
     changement(&membre[3]);
     for(size_t i=0;i<FAMILLE_SIZE;++i){
     printf("Le surnom de %s, agé de %d années, est %s\n",membre[i].nom,membre[i].age,membre[i].surnom);
     }
     return 0;
    }

    «membre», avec un «m» avant le «b»