Allocation dynamique de structure c
Résolu
yaorens
Messages postés
239
Statut
Membre
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
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");
}
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");
}
A voir également:
- Allocation dynamique tableau de structure c
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant ✓ - Forum Excel
- Tableau ascii - Guide
3 réponses
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
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