1

J'ai besoin de réallouer un tableau de short int, or il m'est impossible de réallouer plus de 4X la taille initiale du tableau, c'est normal? Je fais comment pour réallouer ce que je veux (mis à part la boucle de realloc...)?
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

2

d3us (./1) :
J'ai besoin de réallouer un tableau de short int, or il m'est impossible de réallouer plus de 4X la taille initiale du tableau, c'est normal?

Non.
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

ça pourrait venir du fait que j'utilise linux sur une machine virtuelle?
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

4

5

Perso, mon expérience me fait dire que c'est windows qui est beaucoup plus limité que linux dans le domaine d'allouer des grands zones de mémoire.
d3us (./1) :
J'ai besoin de réallouer un tableau de short int, or il m'est impossible de réallouer plus de 4X la taille initiale du tableau, c'est normal? Je fais comment pour réallouer ce que je veux (mis à part la boucle de realloc...)?

Initialement, il y a combien d'éléments ?
cat /proc/meminfo donne quoi ?

6

7

Il faut tout mettre :
MemTotal:      1032032 kB
MemFree:        501216 kB
Buffers:         24244 kB
Cached:         325020 kB

Martial Demolins (./6) :
Quand on a ça, c'est que on est limite en RAM (j'ai 512 Mo et je suis sous Fluxbox avec rien de lancé) ou c'est que Linux garde beaucoup en cache?


Il garde beaucoup en cache.

8

9

Le cache est dégagé quand on a besoin de la RAM pour autre chose, mais sinon, autant utiliser la mémoire dont on dispose!
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é

10

J'attends toujours la réponse au ./5

11

il y a 0x2008 elements à l'origine mais j'ai fait varier, si j'en met plus, je peux réallouer plus, si j'en met moins je suis obligé de baisser le nombre délément à réallour (toujours 4X la taille initiale)
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

12

Attends... Tu n'utilises pas realloc correctement peut-être? Il faut toujours utiliser la valeur de retour, parce que realloc peut déplacer ton bloc de mémoire. La bonne utilisation du realloc C ISO (attention, celui de TIGCC est subtilement différent) est:
void *new=realloc(ptr,newsize);
if (newsize && !new) {
  free(ptr);
  qFatal("realloc failed\n");
}
ptr=new;
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é

13

d3us (./11) :
il y a 0x2008 elements à l'origine mais j'ai fait varier, si j'en met plus, je peux réallouer plus, si j'en met moins je suis obligé de baisser le nombre délément à réallour (toujours 4X la taille initiale)


A moins que tes éléments ne fassent 1 Mo chacun je ne vois pas pourquoi ca échouerait.
On peut voir le code ?

14

Kevin Kofler (./12) :
Attends... Tu n'utilises pas realloc correctement peut-être? Il faut toujours utiliser la valeur de retour, parce que realloc peut déplacer ton bloc de mémoire. La bonne utilisation du realloc C ISO (attention, celui de TIGCC est subtilement différent) est:
void *new=realloc(ptr,newsize);
if (newsize && !new) {
  free(ptr);
  qFatal("realloc failed\n");
}
ptr=new;

avec ou sans pointeur de retour ça me fait une segmentation fault.

sinon pour le code, les lignes utiles c'est ça :
mem=calloc(4*memsize,sizeof(*mem));
mem=realloc(mem,(0x7ffffff-mem1size+1)*sizeof(*mem));

(je n'utilise pas de pointeur de retour ici mais comme je le dis, j'ai testé avec et ça ne change rien)
Je ne pense pas que le reste du code soit utile (surtout qu'il y a a peu près 2000 lignes...)
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

15

Et moi je pense que si, parce que l'erreur n'est pas dans ces 2 lignes. hehe
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é

16

Je pense aussi qu'il en faut plus. Au moins tout la logique autour de memsize et de mem1size, et le type de mem. Bref un testcase complet.
Parce que ca a l'air complétement différent de ce que tu nous racontais.
(Pour info: 0x7ffffff = 134217727 ).

17

je sais bien, mais j'ai testé avec différentes valeurs rentrées à la main sans utiliser memsize ou mem1size, et à chaque fois je ne peux pas réallouer plus de 4 fois la taille initiale
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

18

Show us the code!

19

je veux bien, mais il est à 800km d'ici sur un PC éteint tongue ça attendra une semaine
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

20

triso

21

22

pas possible non plus, j'ai débranché la freebox (ça consomme quand même 7Watts) et le PC, mais j'ai mieux, en fait j'ai le code avec moi triso, il suffit juste que j'installe vmware (donc ça attendra au moins demain).
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

23

24

bah ui, ça me fera 10cts de gagnés, le début de la fortune, je vois pas l'interet de le laisser branché, mais on part un peu en HS là
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

25

26

Euh non, le pc consomme 100W, là par contre c'est du vrai gaspillage, et j'aurais pas pu y accéder de toutes façons, c'est sur une machine virtuelle.
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

27

Martial Demolins (./23) :
Su3d (./22) :
ça consomme quand même 7Watts


/seconde? /heure? /mois? calcule ce que ça coute : quelques centimes happy
[ramène sa science]
Le Watt est une puissance, donc une énergie par unité de temps. En l'occurence, c'est par heure.
L'unité d'énergie avec EDF est le W.h, et l'unité de puissance le W.
[/ramène sa science]
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.

28

Eh oui.
Un Watt, c'est un Joule par seconde (J/s).
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.

29

Martial Demolins (./23) :
/seconde? /heure? /mois? calcule ce que ça coute : quelques centimes smile2.gif
Tu achètes de l'énergie, pas de la puissance. Donc faut multiplier par la durée.
En l'occurence, aux tarifs en vigeur pour particulier en France métropolitaine, 7W ça coûte un peu moins de 7 euros par an.