Pointeur d’initialisation de la structure sur NULL

J’ai un problème avec une structure dans une structure:

typedef struct BrickStruct { int type; SDL_Rect Brick_Coordinates; SDL_Surface *Brick_Surface = NULL; }BrickStruct; 

mon compilateur dit cela à propos de la ligne avec la structure SDL_Surface :

error: expected ':', ',', ';', '}' or '__atsortingbute__' before '=' token

Mais je ne comprends pas vraiment parce que j’ai devant moi la leçon de mon professeur sur le pointeur de structure en disant que: Coordinate *point = NULL;

Coordonner être une structure avec deux int intérieur: int x,y;

Quelqu’un peut-il m’expliquer cette chose étrange?

Merci

Le langage C ne permet pas l’initialisation de champs d’instance en ligne comme ceci. La pratique standard consiste à écrire une méthode de type fabrique qui effectue l’initialisation à votre place.

 BrickStruct create_brick_struct() { BrickStruct s; s.Brick_Surface = NULL; s.type = ; s.Brick_Coordinates = ; return s; } 

merci, cela a été vraiment utile et vous me prenez un poids. Comme j’utilise déjà une fonction pour initialiser mes coordonnées, je vais initialiser mes surfaces en même temps.

Pour être réel, vraiment clair: ma structure va maintenant ressembler à ceci, non?

 typedef struct BrickStruct { int type; SDL_Rect Brick_Coordinates; SDL_Surface *Brick_Surface; // I'm just wondering if I need to make it a pointer here }BrickStruct;