Allocation dynamique de structure c

Résolu/Fermé
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 - 12 sept. 2012 à 20:28
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 20 sept. 2012 à 14:00
Bonjour,

s'il vous plaît , je voudrais allouer une structure dynamiquement , mais quand essaie , sa bugg : "<< expected expression before 'personne' >>", voilà mon code , pourriez vous m'aider ,

struct identit
{
char nom[10] ;
int age;
char sexe[1];
} ;
typedef struct identit identite;

int nbredamis =0 , i;
typedef struct ident *personne;

printf(" ce programme permet d'afficher un tableau ne connaissant pas la taille au depart \n \n");
printf("combien d'amis avez vous ? ");
scanf("%d",&nbredamis);
personne = malloc(sizeof(identite) * nbredamis);
if ( personne == NULL)
{
exit(0);
}
if ( nbredamis > 1)
{
for ( i=0 ; i < nbredamis ; i++)
{
printf(" veuillez saisir le nom de l\'ami %d \n",i+1);
scanf("%s",&personne[i].nom);
printf("\n veuillez saisir l\'age de l\'ami %d \n",i+1);
scanf("%d",&personne[i].age);
printf("\n veuillez saisir le sexe de l\'ami %d \n",i+1);
scanf("%s",&personne[i].sexe);

printf("\n \n");
}
}

for ( i=0 ; i < nbredamis ; i++)
{
printf(" ami %d \n",i+1);
printf("%s\n",personne[i].nom);
printf("%d\n",personne[i].age);
printf("%s\n",personne[i].sexe);
printf("\n \n");

}

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
Modifié par fiddy le 12/09/2012 à 20:52
Tu n'as pas déclaré la variable Personne.
Essaie : Identite *personne;

typedef struct ident *personne;
Et supprime ça, car ce n'est pas une déclaration. Ou alors explique, ce que tu souhaites faire ?

if ( nbredamis > 1)
Pourquoi ne pas inclure nbredamis=1 ?

scanf("%s",&personne[i].nom);
Il ne faut pas mettre de & ici. Pareil pour l'autre chaîne.

Et enfin n'oublie pas de faire un free(...);

Cdlt,

Google is your friend
0