1

Encore moi...
cette fois, c'est un problème surement tout con mais que j'arrive pas à trouver


#include <tigcclib.h>

void _main()
{
		typedef struct
		{
			short ouvert; //liste ouverte ou liste fermée ? 0=fermé ; 1=ouvert
			short parentx;
			short parenty; //où est le parent
			short F; //(distance départ-case)+(distance case-arrivée) = G+H
			short G; //distance depuis le départ
			short H; //distance jusqu'à l'arrivée
  		//Rappel : horizontal/vertical +10 ; diagonal +14
		}CASE;

	CASE map[16][10];
	map[12][13]= {1,12,3,126,0,126};
}


Expected expression before "{" token


qu'est-ce qui manque ?
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

2

Je pense qu'on ne peut pas affecter directement un tableau de nombres à une structure. Il faut que tu affectes individuellement chaque champ.
A moins que map[12][13]= (CASE){1,12,3,126,0,126} fonctionne ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

3

map[12][13]= (CASE){1,12,3,126,0,126} marche sur GTC (il accepte de compiler sans erreur)

vais tester avec TIGCC...
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

4

En effet la solution a été donnée par Thibaut.
Lorsque tu affectes une liste de valeurs "{...}" le type de cette liste n'est connu que lors de la déclaration par le compilateur. Dans les autres cas il faut explicitement donner un type au compilateur.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

5

ok compris.

Autre chose : comment faire pour lire les données d'une matrice définie auparavant ? faut utiliser les fonctions de vat.h mais après ?
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

6

"une matrice définie auparavant", c'est à dire ? une matrice dans le programme en C ? une variable de type "MAT" enregistrée sur la Ti ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

une variable enregistrée sur la TI
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

8

alors il faut commencer par récupérer la variable (soit avec les fonctions de vat.h si c'est une variable enregistrée dans un dossier de la ti, soit avec les fonctions de estack.h si c'est une matrice passée en paramètre au programme), puis chercher dans la documentation ou dans l'un des 65463438578 topics qui parlent déjà de ça sur yN pour connaître le format des matrices, et être capable de les lire correctement.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

c'est une matrice mais dont seul le nom est passé en argument
et euh...oui je suis en train de chercher dans les archives les problèmes similaires smile
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

10

11

moué finalement je pense avoir trouvé une autre solution...
Bon à part ça problème résolu smile
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

12

Thibaut (./2) :
A moins que map[12][13]= (CASE){1,12,3,126,0,126} fonctionne ?

Je conseille d'écrire map[12][13]= (const CASE){1,12,3,126,0,126}, comme ça tu es sûr qu'il n'y a pas de copie inutile faite (normalement un compound literal non constant est censé être recopié sur la pile pour être modifiable, TIGCC est patché pour avoir par défaut une définition plus large de "constant" (il présume const dès que le contenu est constant), mais ce n'est pas conforme au standard C99 et ça pourra changer plus tard; maintenant, ici la copie devrait être éliminable même si elle est mise au départ, mais il ne faudrait pas y compter).

Bref, si vous avez un compound literal constant, mettez toujours le const dans le transtypage (cast)!
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é

13

Oui le fameux const est souvent oublié dans les codes sources en C. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

14

C'est pas la mort.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

Sur TI non, mais parfois si, quand tu as une donnée que tu présupposes constante dans un logiciel embarqué, et qu'à la place de se retrouver mappée en ROM elle se retrouve en RAM, et de fait non initialisée (parceque tes normes de codage t'empêchent d'appeler le cinit), parfois tu mets longtemps à trouver le problème trioui
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

16

mais const suppose que ça va pas être modifié non ?
parce que je risque de modifier certains éléments pendant la recherche
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

17

c'est la valeur d'initialisation qui est constante, mais comme ta variable "map" ne l'est pas, tu pourras la modifier.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

18

ah ok
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic