-
mémoire sous vc++
bonjour à tous,
je voudrais savoir si vc++ utilise pleinement la capacité mémoire de l'ordinateur?
En fait, j'ai 1Go de RAM, et je fais du traitement d'images sous VC++. J'ai souvent un message "Mémoire Insuffisante" lorsque je fais mes traitements sur les images. Pourtant dans mon programme je libère bien les espaces mémoires une fois que j'en ai plus besoin de mes variables.
C'est vrai que j'utililse des tableaux de grandes tailles mais je me demande si j'ajoute une barrette mémoire est ce que mon problème sera résolu? où c'est plutôt une limitation de VC++ qui ne peut gérer qu'une certaine capacité de la mémoire.
Merci
-
tu alloues avec quelles fonctions? malloc() ?
La C run-time library est peut-être limitée: Essaie les fonctions de l'API (GlobalAlloc()/LocalAlloc(), HeapAlloc() ou VitualAlloc(), c'est un peu au choix...
-
voilà comment j'alloue la mémoire :
Code:
byte *img = new byte[largeur*hauteur];
-
donc, sur le tas C++... Comme je te l'ai dis, essaie de voir si ça fait la même chose avec les fonctions de Windows: C'est peut-être le tas C++ qui est trop petit pour tes besoins (ou bien, tu as une fuite quelque part)
-
VC++ n'y est pour rien, c'est la responsabilité de ton code. Etudie la consommation mémoire de ton process, si elle ne fait qu'augmenter, tu as très certainement des fuites...
-
surtout que le message memoire insuffisante peut arriver si les valeurs calcukées pour l'allocation sont erronées/explosées/non initialisées/negatives etc...
:D
-
qu'est ce que tu veux dire "frascape" par des valeurs explosées !!
Merci
-
largeur*hauteur non initialisées par exemple ....
:D
-
Merci à tous et à toutes.
Je vais revérifier mon code.