1

Bonsoir,
Je suis confronté à un petit problème, malloc et free font planter mon programme. Un petit tour dans la doc (http://tigcc.ticalc.org/doc/alloc.html#free) m'a donné cette indication:

Do not attempt to use free on a pointer which has changed after it was allocated with malloc, calloc, or realloc. For example, the following code will certainly crash the calculator:

char *ptr = malloc (2);
if (ptr)
{
*(ptr++) = 'A'; // pointer changed here
*ptr = 0;
...
free (ptr);
}

C'est justement ce que je fais roll
Mais je n'arrive pas à trouver d'alternative pour éviter ce problème.
C'est-à-dire allouer un tableau de char, le manipuler genre :
*(ptr++) = 'A'; // pointer changed here
puis le désallouer.

Merci d'avance smile

2

pour une si petite taille t'as juste besoin de la pile je pense, surtout si ta chaine n'est utilisée que dans une seule fonction.

char ptr[2];
ptr[0]='A';
ptr[1]=0;

sinon il faut faire

char* chaine = (char*)malloc(taille);
char* ptr = chaine;

*ptr++ = 'A';
*ptr++=0;

blabla();

free(chaine);


edit: n'écris pas directement a[numbre] sur le forum, car il va le prendre pour une couleur. Edite mon message pour comprendre smile

3

tu fait un


char *origPtr = malloc (2); 
char *ptr = origPtr
if (ptr) 
{ 
*(ptr++) = 'A'; // pointer changed here 
*ptr = 0; 
... 
free (origPtr); 
} 
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4

Je vous remercie, il ne plante plus grin
Une autre petite question, y a-t-il un moyen simple de vérifier que le programme ne fuit pas ?
Car je constate que si j'exécute le programme, (puis que j'efface l'historique), la RAM libre de ma TI à diminué d'environ 24 octets (mais bon comme dit la méthode est pas forcément génial tongue )

5

tape
- F1
- 8

depuis le home screen et ho magique, plein de x*24 octets récupéré !
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

6

shadow_C (./4) :
(puis que j'efface l'historique)

Ou bien je suis à côté de la plaque ?
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. »

7

ha oui pas vu
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

8

shadow_C : Peut-on voir la totalité du code de ton programme ?
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

10

Pour comprendre où se trouve l'erreur, s'il y en a une.
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

(se retenir de troller, se retenir de troller...)

12

Bah si t'es pour le close source c'est ton droit, mais a près faut pas te plaindre si on peut pas t'aider.
avatar

13

./4: utilise la détection de fuites de la FlashApp Command Post Plus smile
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

14

Lionel Debroux (./13) :
./4: utilise la détection de fuites de la FlashApp Command Post Plus smile


Me semble que ça ne surveille que les Flash Apps ^^

15

En effet, d'après la doc. Bien vu smile
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

16

C'est du vécu de plus ^^