Pointeur sur enregistrement

Fermé
bernard - 12 févr. 2010 à 21:57
 bernard - 13 févr. 2010 à 17:23
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

3 réponses

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
je vois vraiment pas du tout ce qui ne va pas meme après des heures de recherche, vraiment personne ne voit? :-(
0
perosnne ne sait ce que veulent dire ces messages svp, j'ai suivi mon livre pourtant...
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
13 févr. 2010 à 15:22
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
merci bcp dubcek.
0