Initialiser un pointeur sur structure qui contient une structure
Salut à toutes et à tous,
Le titre semble un peu lourd, mais c'est exactement ce qui me pose problème à l'heure qu'il est. Il s'agit là plus d'un question de grammaire que de trouver une solution!
Je m'explique avec le code suivant:
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 30 31 32 33
|
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
double hauteur;
double largeur;
} rectangle;
typedef struct
{
unsigned int nbRectangles;
rectangle *name;
} ensRect;
int main(void)
{
register unsigned int count;
ensRect *touslesRectangles;
if ((touslesRectangles = malloc(5*sizeof(ensRect))) == NULL)
{
return 1;
}
for (count=0; count<5; count++)
{
touslesRectangles[count] = {0, NULL};
}
return 0;
} |
Avec ce code, le compilateur (gcc) m'indique l'erreur suivante:
error: expected expression before ‘{’ token
En revanche, le programme est correctement compilé si je procède à l'initialisation de la façon suivante:
Code:
1 2 3 4 5 6
|
for (count=0; count<5; count++)
{
touslesRectangles[count].nbRectangles = 0;
touslesRectangles[count].name = NULL;
} |
Quelqu'un aurait-il une explication ?
Merci,
Mickaël