Bonjour,
Merci à toi, lecteur, de voir mon problème : j'espère que tu pourras y répondre
À l'intérieur d'une structure, j'ai un double pointeur, représentant un tableau de taille inconnue (enfin, presque) de pointeurs.
Toutes les structures doivent être constantes pour être correctement positionnées dans la ROM (et non la RAM).

J'ai donc le type suivant pour ma structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct anim_animation {
	uint16_t nframes;
	screen_pos_t extent;
	const anim_frame_t ** frames;
} anim_animation_t;
Après avoir correctement initialisé mes 13 anim différents, je créé un tableau de ces anim_frame, puis je le met dans ma structure définie plus haut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
const anim_frame_t * anim_array = {
	&anim_1_frame,
	&anim_2_frame,
	&anim_3_frame,
	&anim_4_frame,
	&anim_5_frame,
	&anim_6_frame,
	&anim_7_frame,
	&anim_8_frame,
	&anim_9_frame,
	&anim_10_frame,
	&anim_11_frame,
	&anim_12_frame,
	&anim_13_frame,
};
const anim_animation_t big_animation = {13, 45, &anim_array};
Je précise que ma structure anim_animation était avant définie non pas comme un double pointeur, mais comme un tableau de taille fixe vers pointeurs.
Alors qu'avant mes modifications, j'arrivais à afficher toutes mes frames, maintenant le code bloque sur le premier.
De plus, j'ai à la compilation, un warning me disant ceci :
module_menu.c:476: warning: excess elements in scalar initializer
module_menu.c:476: warning: (near initialization for 'anim_array')
Ceci pour chaque ligne correspondant à anim_2_frame jusqu'à anim_13_frame : pas la 1 (évidemment)
Que se passe-t-il donc ?

Merci