Le type de tableau a un type d’élément incomplet

J’essaie de faire ceci:

typedef struct { float x; float y; } coords; struct coords texCoordinates[] = { {420, 120}, {420, 180}}; 

Mais le compilateur ne me laissera pas faire. : (Quel est le problème avec cette déclaration? Merci pour votre aide!

Soit faire:

 typedef struct { float x; float y; } coords; coords texCoordinates[] = { {420, 120}, {420, 180}}; 

OU

 struct coords { float x; float y; }; struct coords texCoordinates[] = { {420, 120}, {420, 180}}; 

En C, les noms de struct résident dans un espace de noms différent de celui de typedef s.

Bien sûr, vous pouvez aussi utiliser typedef struct coords { float x; float y; } coords; typedef struct coords { float x; float y; } coords; et utilisez soit struct coords soit coords . Dans ce cas, peu importe ce que vous choisissez, mais pour les structures auto-référencées, vous avez besoin d’un nom de structure:

 struct list_node { struct list_node* next; // reference this structure type - need struct name void * val; };