Ma structure est définie comme suit:Initialiser un tableau de strucuters avec un tableau comme un élément de la structure en c
typedef struct simpleStruct {
int a[2];
int b;
int c;
} simpleStruct;
Je suis en train de l'initialiser en utilisant les éléments suivants:
simpleStruct simpleTable[] = {
{.a[0]= 0, .a[1]= 1, .b = 2, .c = 3},
{.a[0]= 4, .a[1]= 5, .b = 6, .c = 7},
};
Le compilateur lance une erreur "d'initialisation illégale".
Selon le Spec C99 devraient y être autorisés par désigné Initialiseur (http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Designated-Inits.html)
J'ai essayé plusieurs autres façons de initialisant et a constaté que cela fonctionne:
simpleStruct simpleTable[] = {
{.a = {0,1}, .b = 2, .c = 3},
{.a = {4,5}, .b = 6, .c = 7},
};
je me demandais si quelqu'un avait un aperçu sur pourquoi la première version n'a pas fonctionné.
Merci.
Quel compilateur utilisez-vous? Votre code compile bien avec 'gcc'. –
Je ne vois pas où dans cette page il est dit '.a [0]' devrait fonctionner? (Il dit que vous pouvez initialiser un tableau de structures avec '[0] .a') – immibis
@DanielKleinstein J'utilise un PowerPC Complier avec C99 Extensions activé – richardnixonthethird