2 questions concernant la mémoire.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

2 questions concernant la mémoire.

Message par Chris »

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.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

question 1 - je dirai oui
question 2 - quand le pc plante :mrgreen:, aucune idée et je crois pas
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)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Le Soldat Inconnu a écrit :question 1 - je dirai oui
Vachement précis, ça! Oui à quoi?
A AllocateMemory(4), ou à une valeur plus grande

:lol:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ah zut, oublié un bout, excuse moi

oui a allocatememory(4)
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)]
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

1 - 4 octets
2 - Il y a des bibliothèque dédiée à cela comme ElectricFence mais pour PureBasic, je ne pense pas.
Il faudra surement jouer à coup d'assembleur.
"Qui baise trop bouffe un poil." P. Desproges
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

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:

Code : Tout sélectionner

*B1 = AllocateMemory(1)
PokeF(*B1,12852.5845)           : Debug PeekF(*B1)
Debug LocalSize_(*B1)
et LocalSize_() me retourne 1.
Pourtant, je dois pas mal dépasser, là :(
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

tu alloue 25 go de ram et tu seras tranquille, pas de risque de dépassement :mrgreen:

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)]
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Code : Tout sélectionner

*ptr = AllocateMemory(taille)
if *ptr=0
  debug "tu as atteint la limite de la ram
endif
un float c'est bien 4 octets... quand à la facon dont ils sont codés y'a plein de sites ki en parlent... ils sont bien documentés ;)

Dri
Répondre