Typedef char** ? dans struct
Bonjour ;).
Je bug sur un petit truc dans un petit programme.
Avant de montrer les codes je vais expliquer ce que je cherche à faire tout bêtement : Faire un tableau de char avec différentes valeurs, ce tableau sera un type (typedef), et je l'utiliserai dans une autre struct (elle aussi typedef).
Pour visualer encore plus simplement : 1 classe d'élève; chaque élève à plusieurs caractéristiques (typedef struc); une de ces caractéristiques (comme le prenom) peut avoir plusieurs valeurs, ainsi je regroupe toute ces valeurs dans un typedef char [][].
Code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
/* Les différentes valeurs des prenom des etudiants */
typedef char pre_ini[][15] =
{
"Guillaume",
"Paul",
"Kevin",
"Corentin",
"Florian",
"David",
"Gael",
"Thomas"
};
/* Structure étudiant */
typedef struct
{
char nom[20];
pre_ini prenom;
int age;
short race;
short spe;
} etudiant; |
Fonction main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| int main(int argc, char *argv[])
{
/** DATE ET HEURE LOCALE -- WINDOWS **/
SYSTEMTIME Time;
GetLocalTime(&Time);
printf("\n\n Bien le bonjour utilisateur !! \1");
printf("\n\t\4 Nous sommes le : %02d/%02d/%04d ", Time.wDay, Time.wMonth, Time.wYear);
printf("\n\t\4 Et il est : %02dh %02dmn\n", Time.wHour, Time.wMinute);
/** Fin des instructions de date - WINDOWS **/
/******************/
etudiant *ptr_etu = NULL;
ptr_etu = malloc (sizeof(etudiant)*9);
printf("Le nom du gagnant du jour est : %s !!", ptr_etu->prenom);
/******************/
return 0;
} |
Ne vous souciez pas des fonctions du time windows. Mon compilateur me renvoie comme erreur : "Array size missing in 'prenom' ".
Cela ma semblé claire au début, j'ai donc essayer de corriger en faisant un : Mais finalement je ne suis qu'à moitié surpris du résultat, le compilateur me renvoyant :
" Array type has incomplet element type " seulement je bute sur la manière de résoudre ce problème.
Merci d'avance pour votre aide ;) .