Allocation méoire

cs_pac2 Messages postés 21 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 13 avril 2004 - 16 mars 2004 à 21:54
cs_pac2 Messages postés 21 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 13 avril 2004 - 17 mars 2004 à 13:37
Salut,

Dans un de mes programmes je déclare des tableaux de nombres à double précision à 3 dimensions.
Je déclare en fait 6 tableaux "double tab[30][30][30]". Mon programme a donc besoin de 30^3(positions dans le tableau)*8(bytes)*6(tableaux) = +/- 1.29 Mo de mémoire. Je possède 512Mo de mémoire vive. Comment se fait-il dès lors que lorsque je dépasse 1 Mo en déclaration de variable, mon programme plante et Windows me retourne une erreur "OFFSET"???
Windows impose t'il une limite de mémoire pour les jobs? Peut-on permettre l'allocation de plus de mémoire pour nos applications C? Merci

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 mars 2004 à 22:51
Faut allouer dynamique et non sur la pile.
VirtualAlloc

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 mars 2004 à 07:13
Même si tu as 512 Mo de mémoire, il ne faut pas rêver : Windows ne va pas t'accorder de saturer la mémoire avec un seul programme ! Donc, alloue de la mémoire sur le tas, comme te dit BruNews avec mallod ou new. Par contre, n'oublie pas de libèrer la mémoire quand tu ne te sert plus de ton tableau avec free ou delete.

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_pac2 Messages postés 21 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 13 avril 2004
17 mars 2004 à 13:37
Merci à toous les deux! :big)
0
Rejoignez-nous