1

c'est encore moi!
j'aimerais savoir si il etait possible d'agrandir une matrice C. J'ai essayé d'en creer une autre, de la remplir avec les anciennes variables et de remplacer celle ci par l'ancienne, mais apparement, c'est impossible parce que je suis obligé de redeclarer la matrice. A moins qu'il y ai une methode speciale...
Unlimited!

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é

3

La méthode que tu as essayée est possible, cependant les fonctions proposées par Kevin te faciliteront la tâche.
Mais en fait, sache que c'est une mauvaise idée, d'agrandir tes données. Donc je te conseille de trouver une autre solution si possible.
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. »

4

C'est au contraire tout naturel d'agrandir ses données avec HeapRealloc. (realloc est un hack qui est là essentiellement pour la compatibilité ANSI, il vaut mieux travailler sur des handles.) C'est même ce qui est le plus naturel sur les calculatrices.
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é

5

concretement, c'est quoi un handle ? C'est le nom de la variable que je veux agrandir ?
Unlimited!

6

Non, c'est un numéro identifiant un bloc de mémoire.
http://tigcc.ticalc.org/doc/alloc.html#HANDLE
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é

7

• spectras regarde KK avec admiration. C'est un virtuose du RTFM politiquement correct happy

8

je suis desolé mais je comprend vraiment pas comment ca marche tsss
Unlimited!

9

C'est cette phrase la plus importante :
it tries to reallocate the given heap block to a new size.
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. »

10

spectras :
• spectras regarde KK avec admiration. C'est un virtuose du RTFM politiquement correct happy

*Ahem*... Je ne suis pas du tout d'accord... Il fait même pire que Vark à certaines époques, cf ici (d'ailleurs, sachant que maintenant celles de Vark du même style sont systematiquement censurées, il en sera de même pour tes prochaines, Kevin)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11

Flanker n'est pas un débutant, c'est quelqu'un qui fait exprès...
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é

12

bon admettons, mais dans ce cas la, comment choisir le bon bloc memoire?
Unlimited!

13

À l'aide de son numéro, qui est appelé "handle".
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é

14

et je le trouve ou son numero ??? Faut que je lui en assigne un ?
Unlimited!

15

Non, quand tu fais une allocation à l'aide de la fonction HeapAlloc, tu obtiens le n° du handle du bloc alloué.
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. »

16

donc il faut que definisse la matrice avec heapalloc, c'est ca ?
Unlimited!

17

Pas que tu la définisses, mais que tu alloues de la RAM, oui.
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

oula, je comprend de moins en moins. Tu pourrais pas me montrer un exemple ?
Unlimited!

19

Qaund tu fais HANDLE h=HeapAlloc(32); tu alloues un espace de 32 octets en RAM, c'est-à-dire que tu demandes au système d'exploitation (AMS) de t'indiquer dans la RAM un endroit à partir d'où tu pourras utiliser 32 octets (sans que ça n'écrase les données déjà en RAM).
Le système te renvoie le n° du handle qu'il aura associé à cet espace pour l'occasion (ou 0 s'il n'y a plus d'espace libre). Ce handle est en fait utilisé par le système comme l'indice d'un tableau qui contient des informations sur l'utilisation actuelle de la RAM (comme par exemple l'adresse du début bloc associé au handle, pour que tu puisses ainsi y accéder [c'est ce qu'utilise HeapDeref]).
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. »

20

donc je commence par allouer de la ram avec handle, puis j'utilise heaprealloc pour changer la taille du bloc memoire alloué. Mais comment je definie la matrice ?
Unlimited!

21

Tu écris dedans comme à partir de n'importe quelle adresse. A toi d'écrire tes données en les organisant selon une structure qui te conviendra.
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. »

22

donc, je ne peux pas les mettre sous la forme d'une matrice
Unlimited!

23

Ben tu peux les mettre sous la forme que tu veux, donc pas de problème pour une matrice.
Qu'est-ce qui te pose problème ?
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. »

24

ben je sais pas, je comprend pas comment faire pour assigner la matrice a la place allouée (ou l'inverse ?)
Unlimited!

25

http://tigcc.ticalc.org/doc/alloc.html#HeapDeref
Quant à la copie quand tu redimensionnes le bloc, HeapRealloc s'occupe de ça tout seul.
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é

26

dans ce cas la, ademttons que j'ai une matrice 8*8. Si je l'agrandie, je pourrais seulement avoir 10*10. Mais si je veux 8*12 ? et meme dans ce cas la, comment ne pas avoir 12*8 ?
Unlimited!

27

Si tu veux du 8*12, tu fais HeapRealloc(8*12*sizeof(short));
Et une matrice de 8*12 ou de 12*8 prennent la même taille, c'est juste la façon dont tu "vois" tes données qui est différente.
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. »

28

justement, j'aimerais pas qu'elles soient a l'envers...
Unlimited!

29

Tes données seront comme tu le veux.
Tu n'arrives pas à voir les choses à un niveau suffisamment bas.
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. »

30

oui, j'ai un peu de mal a voir comment marche cette fonction. M'enfin bon, j'essayerais quand j'aurais un peu plus de temps
Unlimited!