Problème affichage des données d'un tab struct [Résolu/Fermé]

Signaler
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
-
Messages postés
15636
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
-
Bonjour,
Je ne sais pas comment afficher les données d'une structure de tableau.
Cas d'exemple:
struct un_objet{
float prix;
char description[50];
};
struct stock{
int nombre_objet;
struct un_objet objet[50];
};

int main(void){
struct un_objet* pointeur;
struct stock stocks;

printf("Descripition ? ");scanf("%50[^\n]%*c",pointeur->description);
printf("Prix ? ");scanf("%f%*c", &pointeur->prix);
stocks.objet[1] = *pointeur;
printf("%s",stocks.objet[1]); /* -> ne marche pas */
}

Je sais pas comment afficher les objets ?

1 réponse

Messages postés
5550
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
12 mai 2021
934
Salut histl4000,

Si c'est la description que tu veux afficher, tu devrais afficher
stocks.objet[1].description
.

Cependant, ton code produira une erreur de segmentation à l'exécution car tu ne réserves pas d'espace mémoire pour la struct vers laquelle est sensée pointer
pointeur
, qui, comme toute variable déclarée comme un pointeur sur quelque chose, est une variable réservant juste assez d'espace pour une adresse mémoire.

Si tu fais comme cela, tu dois utiliser malloc pour allouer la mémoire nécessaire à la struct, et mettre l'adresse mémoire de son emplacement dans la variable
pointeur
.

Dal
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
2
D'accord, merci beaucoup.
Messages postés
15636
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855 >
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018

bonjour, peux-tu marquer comme résolu, en utilisant le lien en dessous du titre?