Je me demande comment marche le tas sur TI.
1. si je déréférence un handle que je viens de libérer, qu'est ce qui se passe?
HANDLE h=HeapAlloc(tutu);
void *a;
a=HeapDeref(h);
((int*)a)[0]=0x42;
HeapFree(h);
printf("%d",*((int*)a));
1bis: si je déréférence un handle qui n'a jamais été alloué, qu'est ce qui se passe?
2. Il fait quoi, le gc? déplacement des blocs pour qu'ils soient contigus? Que se passe t il si un block est locké? on essaye de remplir les gaps avec des blocs qui pourraient rentrer?
1. C'est mal d'utiliser de la mémoire après la libération, mais je ne crois pas que ça plante.
1bis. Tu récupères ce qu'il y a dans la heap table au numéro de ce handle, c'est à dire NULL.
2. Si un bloc est locké, il n'est pas déplacé par le GC. Mais à part ça, je n'ai jamais regardé ce que font exactement HeapAlloc et HeapAllocHigh (même si je sais que cette dernière fait HeapCompress() pour commencer).
sizeof(void)==1 est une extension GNU documentée. Pour TIGCC, c'est donc parfaitement sûr (je ne sais pas pour GTC et TIFS), en revanche si tu veux du code portable pour d'autres compilateurs, vaut mieux éviter.
J'ai pas regardé le code des IDE, mais tous les TPR que je connais ont des chemins absolus pour "Open File"...
C'est pas rare que j'édite les TPR avec un éditeur de texte, pas avec KTIGCC.
C'est vraiment dommage que KTigcc ne marche pas encore sous Qt/Win32, sinon je me ferais un plaisir d'implémenter ce qui m'agace.
Open File est toujours absolu, aussi sous KTIGCC, ça n'a aucune importance, si tu déplaces le projet, tout ce que ça fait est qu'il n'y aura pas de fichier ouvert, pas d'erreur.
Et ça ne peut pas être source d'erreur ? Imagine qu'on copie/colle le répertoire du projet, en ouvrant le tp copié celà va-t-il ouvrir l'ancien ?

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa 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.
Non, il n'ouvre pas le fichier s'il ne fait pas partie du projet.
C'est vraiment pas génial comme fonctionnement...

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.
en effet c'est bizarre mais honnêtement ça casse rien.
20: ah, il met des marqueurs dans la zone de données? genre on peut corrompre tout le tas en faisant des débordements?
handles => garder un handle fixe quand le bloc réel est déplacé.
c'est vrai, j'ai implémenté mon truc, et j'ai besoin d'une fonction bloc_suivant() qui m'oblige à scanner la table des handles.
avec un truc comme ça, t'as pas besoin de scanner la liste.
(cross, oui c'est sans doute ça)