1

Je désire utiliser un tableau de pointeurs (ca peut toujours peut etre pratique smile)
Bon en fait je demande ça parce que je suis en train d'essayer de faire une structure de menus récursive.

Disons que mes pointeurs sont des pointeurs sur une structure Menu
typedef struct {...} Menu;

Et j'ai un tableau array (en fait lui même un Menu mais c pas grave)
et je veux qu'il contienne des pointeurs sur des structures Menu.
Evidemment ça : ca marche pas :
Menu array[] = {&Menu1, &Menu2, etc...};-> "Initializer element is not constant"
C'est logique ve que le prog alloue de l'espace quand il démarre pour Menu1 et les autres donc il connait pas son adresse a la compilation.

La question est donc :
Est il possible d'éviter ceci pour abtenir mon tableau de pointeurs :

array[0] = &Menu1;
array[1] = &Menu2;
array[2] = &Menu3;
...

qui pour des grands tableaux bouffe bêtement de la memoire confus
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

2

Ce que tu veux faire est tout à fait possible, mais ce n'est pas Menu array[] qu'il faut mettre, mais Menu *(array[]);.

Pour mettre ton array dans la structure elle-même, voilà le code:
typedef struct Menu {int toto; struct Menu *(array[]);} Menu;
Menu Menu1={0,{}}, Menu2={0,{}};
Menu menu = {0,{&Menu1, &Menu2}};

C'est parfaitement accepté par TIGCC pour des variables globales.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Mais oui !! Suis-je bête grin J'ai oublié les & triso
Dans mon code j'ai mis un truc du genre
Menu array[] = {Menu1, Menu2, etc...};

Alors que dans mon post je les ai bien mis grin
côm ca :
Menu *(array[]) = {&Menu1, &Menu2, etc...}; enfin, sauf l'*

Sinon, ok pour la déclaration il fô bien mettre l'* triso

Merci Kevin d'être toujours là pour répondre !! top
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak