Comment imprimer une structure à l'aide d'un pointeur??
IHECinformaticien
Messages postés9Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention29 mars 2009
-
27 mars 2009 à 21:21
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 2013
-
27 mars 2009 à 21:41
Bonjour, j'ai définit une structure date contenant 3 champs de type entier pour identifier le jour, le mois & l'année. Ensuite j'ai initialisé une variable de type structure date & je l'ai imprimé à l'aide d'une variable. Mon problème c'est que je ne sais pas comment imprimer la structure à l'aide d'un pointeur. Voici le code source que j'ai écrit. Merci beaucoup.
#include<stdio.h>
void main()
{
struct date
{
int jj;
int mm;
int aa;
};
struct date journee={27,03,2009};
printf("Le jour est %d\n",journee.jj);
printf("Le mois est %d\n",journee.mm);
printf("L'annee est %d\n",journee.aa);
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 27 mars 2009 à 21:41
Salut,
L'opérateur de déréférencement (l'astérisque *) est ton ami ainsi que la «flèche» -> qui est un raccourcit utile dans ton cas.
Un exemple de code complet :
#include
#include <stdio.h>
struct date
{
int jj;
int mm;
int aa;
};
static int affiche_date(struct date *date)
{
if (date == NULL)
return -1;
printf("Le jour est %d\n", (*date).jj);
printf("Le mois est %d\n", date->mm);
printf("L'annee est %d\n", date->aa);
return 0;
}
int main(void)
{
struct date journee = {27,03,2009};
return affiche_date(&journee);
}
Tu remarquera que j'ai utilisé deux méthodes différentes équivalentes. La première est surtout là a titre indicatif, en général on utilise la seconde.
Quelques autres petites remarques :
- déclare donc ta structure en dehors de toute fonction (dans un .h serais le mieux)
- fait donc retourner un int a main (code d'erreur, 0 pour "aucune erreur" et autre chose que 0 en cas d'erreur)