Augmentation de la mémoire utilisée

mrous Messages postés 29 Date d'inscription samedi 4 octobre 2003 Statut Membre Dernière intervention 28 juillet 2006 - 15 juin 2006 à 09:37
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 15 juin 2006 à 15:19
Bonjour,

pour les besoins d'une application, je dois réaliser un tableau composé d'un million de variables et pouvant utiliser jusqu'a 16 Mo de RAM. Pendant mes recherches j'ai vu qu'il était possible d'utiliser un heap ou malloc.
Pouvez vous me dire quelle est la méthode la plus sure?
Et pouvez vous me donner qq conseils sur l'implementation?

Merci d'avance

Mathieu

3 réponses

mrous Messages postés 29 Date d'inscription samedi 4 octobre 2003 Statut Membre Dernière intervention 28 juillet 2006
15 juin 2006 à 10:23
j'ai trouvé un moyen de résoudre mon problème:
si j'utilise des pointeurs en déclarant mon tableau ainsi double * array = new double[1000000], ca marche mais si je crée mon tableau en faisant double array[1000000], ca plante.
Pouvez vous m'expliquer pourquoi et y a-t-il des riques en utilisant les pointeurs?

PS: au cas ou vous ne l'aviez pas devine: 1) je debute
                                                              2) je suis pas tres doué!

Merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 juin 2006 à 10:42
double array[1000000];
n'est pas une alloc mémoire mais une réservation sur la pile, il est clair qu'une telle quantité fera sauter la pile.

new ou malloc demandent au systéme d'allouer une zone mémoire.

ciao...
BruNews, MVP VC++
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 juin 2006 à 15:19
avec malloc, on peut controler si l'opération s'est bien déroulée. et en cas d'échec, faire un traitement adhoc (défrag de la ram par ex)

avec new, je crois qu'on peux récupérer l'erreur mais il faut passer par les exception

pour l'alloc sur la pile, je ne crois pas que le controle soit faisable.

___________________________________________________________
Magicalement
Nono
0
Rejoignez-nous