Pointeur sur enregistrement

bernard -  
 bernard -
Bonjour, j'ai crée l'enregistrement suivant :

struct voiture {
int immatriculation;
char *modele;
}

Je souhaite créer une fonction afficher(struct voiture *pv) qui affiche la valeur des champs de cet enregistrement, avec la notation -> . Voici ce que j'ai fait :

struct voiture v, *pv = {pv->5689, pv->"peugeot"};

void afficher(struct voiture *pv){
printf("%d, %s", pv->immatriculation, pv->modele);
}

Mais ça ne compile pas, aurais je oublié quelque chose svp?

merci
Configuration: Linux
Mozilla 1.9.0.16

3 réponses

  1. bernard
     
    j'ai recodé plus proprement mais tjs des tonnes d'erreurs de compilation je ne comprends plus rien je suis mon livre pourtant:

    struct voiture {
    int immatriculation;
    char *modele;
    };

    struct voiture v, *pv;
    pv = &v;
    pv -> identification = 5948;
    pv -> modele = "peugeot";

    void afficher(struct voiture *pv){
    printf("immatriculation %d, Modele %s, %d ", pv->immatriculation,pv->modele);
    }

    A la compilation j'ai tout ce flot d'erreur je ne comprends pas:

    error: data definition has no type or storage class error: type defaults to ‘int’ in declaration of ‘pv’
    error: conflicting types for ‘pv’
    error: previous declaration of ‘pv’ was here
    error: initialization makes integer from pointer without a cast
    error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘->’ token
    error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘->’ token
    error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘->’ token
    error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘->’ token

    Quelqu'un aurait il une petite idée svp?
    0
    1. bernard
       
      je vois vraiment pas du tout ce qui ne va pas meme après des heures de recherche, vraiment personne ne voit? :-(
      0
  2. bernard
     
    perosnne ne sait ce que veulent dire ces messages svp, j'ai suivi mon livre pourtant...
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ cat voit.c
    #include <stdio.h>
    
    struct voiture {
    int immatriculation;
    char *modele;
    };
    
    struct voiture v, *pv;
    
    void afficher(struct voiture *pv)
    {
    	printf("immatriculation %d, Modele %s\n", pv->immatriculation,pv->modele);
    } 
    
    main()
    {
    	pv = &v;
    	pv -> immatriculation = 5948;
    	pv -> modele = "peugeot";
    	afficher(pv);
    }
    $ 
    $ ./voit
    immatriculation 5948, Modele peugeot
    $ 
    
    0
    1. bernard
       
      merci bcp dubcek.
      0