1

short  table[];
char  *je_vais_etre_corrompu;

Il est impossible de lire et d'écrire dans table sans corrompre les variables déclarées après, voir planter le programme si on sort de la zone des données confus

Pourquoi les compilateurs autorisent-ils la déclaration de telles variables ?
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.

2

E:\TI-89\Compilers\tigcc\Projects>tigcc -c -Os -Wall -W test7.c test7.c:1: warning: array `table' assumed to have one element

Donc déjà GCC présume une taille de 1, pas 0 qui fait tout planter à coup sûr, et puis il donne un warning.
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

GTC présume une taille de 0 dans ce cas-là il me semble. Mais il donne probablement un warning.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

4

Oué. Je ne comprends pas trop pourquoi le Ouaringue n'est pas donné à la déclaration.

La taille de 1 fait planter presque à coup sûr aussi : y'a peu de chance qu'on n'utilise que le premier élément du tableau smile
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.

5

> Je ne comprends pas trop pourquoi le Ouaringue n'est pas donné à la déclaration.
Ben si, ligne 1, non?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

6

Heu il faut que je rééssaie alors... Je crois me souvenir qu'il me donnait le warning au "moment" où j'accède au tableau, pas pour la déclaration smile
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.

7

Ah oui, pas idiot. Comme ça, on peut s'en servir pour faire #define HASH_SIZE 0 ou 2000 selon qu'on veut une hash table, écrire short hash_table[HASH_SIZE]; et enfin : #if HASH_SIZE ... code HASH ... #else ... code pas HASH ... #endif
Mais bon ça reste vraiment un détail qui devait être pour des raisons de compatibilité avec les progs existant avant le warning.

Bon allez je t'interdis de répondre tant que tu n'as pas testé la dernière béta grin

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

8

Je sens qu'Eintein va être tout petit.... love

Merci à GTC chinois
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.

9

erf smile bon allez dépêche-toi au lieu de répondre à ces topics idiots wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

10

Pollux
: Ah oui, pas idiot. Comme ça, on peut s'en servir pour faire #define HASH_SIZE 0 ou 2000 selon qu'on veut une hash table, écrire short hash_table[HASH_SIZE]; et enfin : #if HASH_SIZE ... code HASH ... #else ... code pas HASH ... #endif

On peut aussi avec GCC. Taille 0 != pas de taille.
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é

11

Oui. Je parlais de GCC, en l'occurrence (et j'expliquais le pourquoi du warning à l'utilisation et pas à la déclaration).

Euh d'ailleurs ça me paraît bizarre qu'il ne donne pas de warning si on s'en sert pas et si ce n'est pas en static doom

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

12

C'était en static tongue
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.

13

OK. Ils ont pensé à tout wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

14

Pollux
:Oui. Je parlais de GCC, en l'occurrence (et j'expliquais le pourquoi du warning à l'utilisation et pas à la déclaration).

GCC avertit à la déclaration! (Cf. ./2.)
Mais seulement si on utilise []. Si on fait [0], il part du principe qu'on fait exprès.
Euh d'ailleurs ça me paraît bizarre qu'il ne donne pas de warning si on s'en sert pas et si ce n'est pas en static doom

Il en donne un!
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é

15

Kevin> Thibaut a écrit short[]; sans static et sans 0 et il a dit "Je crois me souvenir qu'il me donnait le warning au "moment" où j'accède au tableau, pas pour la déclaration". Je ne suis pas devin, désolé roll

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

j'ai écrit sans static parceque table était dans la section globale.
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.

17

Je ne vais pas ouvrir un topic pour une autre question minable :

Quel ROM_CALL permet de connaître l'adresse de la table des handles ?
Merci smile
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.

18

a pas sad (en tout cas sur 1.xx).

Mais tu dois facilement pouvoir le trouver de manière sale avec HeapDeref smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

19

Sous AMS 2, le 0x441.
Sous AMS 1, l'adresse se trouve dans HeapDeref à l'offset 8. (attention Cet offset a changé dans AMS 2. Utilise le ROM_CALL sous AMS 2.)
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é

20

J'avais pensé à lire HeapDeref, mais je trouvais ça trop sale. Je vais utiliser le ROM_CALL.
Merci à vous smile
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.

21

void _main(void)
{
  clrscr();
  printf("%lp", _rom_call_addr(441));
  ngetchx();
}
Ca me dit que le ROM_CALL 0x441 est à l'adresse 0x822C. Ce n'est pas en ROM ! Je comprend pas...

Ou alors le ROM_CALL 0x441 ne référence pas une fonction mais directement l'adresse de la table des handles (0x822C) ?
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.

22

c'est directement l'adresse de la table
si tu regardes avec un éditeur hexa à l'adresse 0x822c, tu verras normalement un -1 (handle nul).
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

23

OK merci smile
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.