1

quelle est la commande C pour quitter le programme
IP2X

2

il y a exit() mais il est préferrable de sen passer si tu peux
avatar

3

pourquoi ?
IP2X

4

Premierement parceque c'est plus logique de finir le programme normalement et parcequ'il me semble que le support du exit rend le programme quelque octets plus lourd.
Si tu est dans le main un simple return suffira.
avatar

5

Merci smile
IP2X

6

je suppose qu'un exit ne libère pas la mémoire allouée pas HeapAlloc et HeapAllocPtr/malloc...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

7

En effet, il n'y a aucune libération automatique de la mémoire sur la TI-89/92+/V200.
Il faut enregistrer une fonction de nettoyage avec atexit.
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é

8

en utilisant return ca m'a tjs vidé les malloc
avatar
Wenn ich morgen meinem Gott gegenübertrete, kann ich ihm sagen: "Ich bin unschuldig, ich hab' niemandem etwas getan - außer mir selben" Und das verzeiht er mir offentlich !
Falco - Hans Hölzel 1957 - 1998
RIP

9

!slap limmt
• GoldenCrystal slaps limmt around a bit with a large trout !

Arrête de dire des conneries
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

10

Heureusement que Windows Server 2003 et RedHat Linux sont à l'abri des memory leaks tripo

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

11

C'est pas impossible. Soit TIGCC libère les blocs créés avec malloc (il me semble que sur PC ça le fait), soit il a un kernel.
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.

12

Thibaut> C pas possible que TIGCC libère les blocs, sinon imagine ce qui se passerait quand tu voudrais créer un fichier...
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

13

Quand tu crées un fichier, t'es sensé employer fopen, banane tongue
Au pire, tu le fais à la main (pour la rapidité) et tu emploies HeapAlloc, mais jamais malloc puisque le TIOS ne prend que des handles, pas de adresses.
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.

14

Quand tu crées un fichier, t'es sensé employer fopen, banane

en même temps, si tu sais t'en passer, autant t'en passer, ne serait-ce que pour gagner de la place...

la libération auto de la mémoire suite à un malloc, ça m'étonnerai BEAUCOUP que TIGCC le fasse !
Ce n'est pas le boulot d'un compilateur !
(déjà d'un OS, c'est pas dit, même si Windows (on-pc) le fait, par exemple... ou PreOS sait le faire dans certains cas... mais surement pas le role d'un compilo !)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

15

./13>Oué mais tu peux convertir un pointeur malloc en handle tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

16

C'est plus pratique d'obtenir directement le handle avec HeapAlloc.
squale92 : sur PC, ça libère. Maintenant faut savoir si c'est la librairie qui le fait, ou bien si c'est l'OS.
Si c'est la lib, et si TIGCC ne le fait pas, alors TIGCC est bogué.
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

Mais non...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

18

Il me semble que c'est l'OS qui libère la mémoire.
Si c'est la lib, et si TIGCC ne le fait pas, alors TIGCC est bogué.
Euh, sur PC, les programmes ont chacun un espace mémoire (avec entre autre un heap) séparé, donc c'est simple de libérer la mémoire, peu importe que ça soit l'OS ou la librairie qui s'en charge (vu que la librairie utilise les fcts de l'OS de tt façon...). Alors que sur TI, tout est mélangé dans un seul heap, donc ça complique énormément la tâche. Donc quoiqu'il en soit, on peut pas vraiment dire que TIGCClib est buggée.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

19

squale92 : sur PC, ça libère. Maintenant faut savoir si c'est la librairie qui le fait, ou bien si c'est l'OS.

je parie sur l'OS smile
ce N'EST PAS le role de la librairie : elle, elle alloue qd on fait un malloc, elle libère quand on fait un free, et c'est tout ! elle n'a pas à faire quelque chose qui ne lui est pas demandé !
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

20

C'est bien le boulot de l'OS. Et les OS multitâches classiques (Windows, U*X) sont censés être stables même si un prog crashe complètement, donc c'est normal de se protéger des memory leaks (sinon, pas d'uptime de plusieurs années happy). Pour une TI, y a pas de MMU, donc on est à peu près sûr que la RAM est morte si un prog crashe un peu violemment -> reboot obligatoire...

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

21

Euh juste comme ça c'est quoi un MMU?
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.

22

Euh qqc comme Memory Management Unit je pense
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

23

Oui, un truc dans le processeur qui remappe la mémoire à des endroits spécifiés par l'OS, ce qui permet de protéger certaines zones, les mettre en lecture seule, etc... C'est vraiment la base pour avoir un système multi-utilisateurs sûr avec des utilisateurs potentiellement aggressifs, ou encore pour avoir un système qui ne crashe pas qd un des programmes crashe.

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

24

Stop. C'est le kernel qui s'occupedes memory leak en kernel seulement.

25

ok je vois. smile
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.

26

Comment fait-il ça ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

27

#stop# J'en ai deja assez discute!

28

Où ça ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

29

Partout tongue
C'est simple, il libère tous les handles alloués par le programme qui ne sont pas de fichiers. Pour ça on compare la table après exécution à son état après. Un champ de bits suffit pour la sauvegarde de la table :
1 : ce handle était alloué, on change rien
0 : n'était pas alloué => on libère
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.

30

Et si on veut installer un TSR kernel, ça ne marche pas ?
(je viens peut-être de poster une énorme connerie)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »