2 questions concernant la mémoire.
2 questions concernant la mémoire.
I y a deux ou trois trucs que je ne pige pas bien, au sujet de la mémoire.
1 - Quelle taille de mémoire faut il allouer pour le traitement des nombres flottants.
L'aide dit qu'un "Float" prends 4 octets en mémoire, alors je me demande si il faut faire AllocateMemory(4), ou si je dois mettre une valeur plus grande!
2 - Est-ce qu'il y a un moyen de vérifier qu'on a pas un dépassement de mémoire.
1 - Quelle taille de mémoire faut il allouer pour le traitement des nombres flottants.
L'aide dit qu'un "Float" prends 4 octets en mémoire, alors je me demande si il faut faire AllocateMemory(4), ou si je dois mettre une valeur plus grande!
2 - Est-ce qu'il y a un moyen de vérifier qu'on a pas un dépassement de mémoire.
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Il y a bien une fonction dans l'Api, LocalSize_(), mais elle retourne la valeur de mémoire attribuée au départ.
J'ai fait ça:
et LocalSize_() me retourne 1.
Pourtant, je dois pas mal dépasser, là
J'ai fait ça:
Code : Tout sélectionner
*B1 = AllocateMemory(1)
PokeF(*B1,12852.5845) : Debug PeekF(*B1)
Debug LocalSize_(*B1)
Pourtant, je dois pas mal dépasser, là

-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
tu alloue 25 go de ram et tu seras tranquille, pas de risque de dépassement 
sérieusement, tu ne peux pas tester la taille de ce que tu veux stocker pour savoir si ça rentre avant de l'envoyer dans la mémoire ?
car savoir que ça a dépassé, c'est bien mais c'est trop tard, car tu as écrasé les donnés qui était derrière ton espace (ou alors j'ai rien compris)
donc il faut vérifier avant et pas après

sérieusement, tu ne peux pas tester la taille de ce que tu veux stocker pour savoir si ça rentre avant de l'envoyer dans la mémoire ?
car savoir que ça a dépassé, c'est bien mais c'est trop tard, car tu as écrasé les donnés qui était derrière ton espace (ou alors j'ai rien compris)
donc il faut vérifier avant et pas après
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Code : Tout sélectionner
*ptr = AllocateMemory(taille)
if *ptr=0
debug "tu as atteint la limite de la ram
endif

Dri