Signaler

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

Posez votre question histl4000 72Messages postés lundi 3 juillet 2017Date d'inscription 12 octobre 2017 Dernière intervention - Dernière réponse le 15 oct. 2017 à 10:57 par yg_be
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 ?

Utile
+0
plus moins
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
histl4000 72Messages postés lundi 3 juillet 2017Date d'inscription 12 octobre 2017 Dernière intervention - 12 oct. 2017 à 20:10
D'accord, merci beaucoup.
Répondre
yg_be 3559Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 15 octobre 2017 Dernière intervention - 15 oct. 2017 à 10:57
bonjour, peux-tu marquer comme résolu, en utilisant le lien en dessous du titre?
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !