1

Salut!

Dans mon source je sauvegarde un écran avec :

// La déclaration :

char buffer1 [BITMAP_HDR_SIZE + 100*160/8];

SCR_RECT a_sauver = {{0, 0, 159, 99}};
SCR_RECT zone_clip = {{0, 0, 159, 99}};

//... (Une Image) ...

//On la Sauvegarde :
BitmapGet(&a_sauver, buffer1);

//... (On change l'écran) ...

//On restaure l'image :
BitmapPut(0,0,buffer1,&zone_clip,A_REPLACE);

------------------------

Pour l'instant, il n'y a pas de problème : je n'ai qu'un écran virtuel (ici buffer1) mais il m'en faut cinq ! Eh oui. Je me dis que le stack est peut-être un peut trop petit...

Comment faire pour créer un malloc pour allouer dynamiquement mes écrans virtuels : buffer1, buffer2... ?

Merci d'avance

wink
François BALLAND

Site Ti : http://www.balland.org

2

Ca passe sans probleme sur la pile.

3

dans mon tuto sur ti-fr, doit y avoir un bref passage sur malloc je crois
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

4

je capte pas le probleme?? si tu veut alouer de la memoire tu fait :

char *buffer1 =(char *)malloc(size);

et pour la niquer tu fait
free(buffer1);

mais je pense pas que ce soit ca ton pb!!??
membre de la j2t...
(gros)Projet en cours: un editeur d'image avec calc,selection,rect,cercle,etc..

5

ctaf2k
a écrit : mais je pense pas que ce soit ca ton pb!!??


Il y a une place limite sur la pile pour les variables.
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

6

Je vais essayer de tout metre sur la pile mais 16 ko me paraissent un peu légères...
Sinon, j'allourais de la memoire virtuelle avec : char *buffer1 =(char *)malloc(size);

Une question surement bête (je n'ai jamais encore travaillé avec malloc) dans la ligne ci dessus (extraite du post de ctaf2k), "size" c'est pas "sizeof"?

Merci.
François BALLAND

Site Ti : http://www.balland.org

7

ben généralement nan, s'il a ecrit size, c pke c la taille a allouer qu'il faut mettre dedans:
toi, ce sera 3840 si c pour un ecran complet

8

160*100/8 *5 ~10 K. Ca passe sur la pile.

9

Bon, en fait j'ai une ti-89, donc c'est un écran de 160*100 et 160*100/8 = 2000, soit 2k, mais j'en ai 5 donc 2*5 = 10k, mais quand je n'utilise pas d'allocations en RAM, il y a des ERROR : MEMORY. J'ai trouvé la ligne de code pour pouvoir allouer, par exemple, buffer3. Je vous donne cette ligne de code parce que vous n'avez pas l'air de savoir comment faire cette action (chiante) mais pratique. La voici :

char *buffer3 = (char *)malloc(BITMAP_HDR_SIZE + 100*160/8);

Voila et avec ça mon prgm est presque fini !

Par contre : j'aurai une question : pourquoi ça ne marche pas ça :

else if ((xa==104)&&(ya==67))
{
goto at25;
}

// ...

else if ((!strcmp(sym_src_result,"mn")) || (!strcmp(no_src_result,"25")))
{
at25:
strcpy (data_1, "Manganese")
strcpy (data_2, "metaux")
strcpy (data_3, " Mn")
strcpy (data_4, "25 54.9")
strcpy (data_5, "1244")
strcpy (data_6, "1962")
}

Merci top
François BALLAND

Site Ti : http://www.balland.org

10

Ben heu, ca marche, non ?

11

Ton label est dans un if et peut-etre que quand tu en sors ya une erreur avec le }

12

Ca devrait marcher cquand meme. Utilise la version de gdb porte par nitro pour en savoir plus.

13

c'est koi ce truc??confus
François BALLAND

Site Ti : http://www.balland.org

14

Va voir le topic de Nitro sur gdb. topics/13132-gdb-source-level-debugging
c'ést un debogguer de code C.

15

Ok j'vais le tester, mais je ne vous promets rien : je n'ai jamais utilisé de débugger jusqu'a maintenant.attentionattentionattention
François BALLAND

Site Ti : http://www.balland.org

16

y a un truc que je capte pas:
je déclare un tableau char* Level que j'alloue dynamiquement
Level=calloc(1400,1);
et a la fin du prog si je fais free(Level), ça plante
mais ça marche nickel si je n'ecris pas free(Level);
comment ça se fait??couic

17

Vérifie que tu ne fais pas ton free 2 fois (essaye: if (Level) {free(Level);level=0;}), et que tu n'utilises pas Level après ton free(Level);.
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é

18

nan pourtant confus