Tableau à 3 dimensions = erreur size of variable is too large - comment éviter ?
wincpp
Messages postés24Date d'inscriptionlundi 4 août 2008StatutMembreDernière intervention 9 septembre 2009
-
16 juin 2009 à 10:16
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 2013
-
25 juin 2009 à 08:41
Salut à tous.
Voilà j'ai un problème quand je veux allouer un tableau à 3 dimensions du genre
int tableau[1024][768][1000];
Mon compilateur DevC++ me dit: "size of variable 'tableau' is too large ".
Je sais c'est énorme mais je veux comme ça et pas autrement.
Je voudrais savoir comment faire pour qu'il m'autorise à créer une variable de cette taille là ou si il y a un autre moyen (pas top compliqué) pour créer un tableau 3D.
D'avance merci.
A voir également:
Tableau à 3 dimensions = erreur size of variable is too large - comment éviter ?
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 16 juin 2009 à 10:30
3Go est impossible même en 64bit, de cette façon : allocation statique.
Tu vas etre obligé de passer par malloc pour allocation dynamique. Sinon, Windows comme Linux, vont t'hurler dessus parce que la taille de la pile sera énorme.
wincpp
Messages postés24Date d'inscriptionlundi 4 août 2008StatutMembreDernière intervention 9 septembre 2009 24 juin 2009 à 17:44
J'avoue que vouloir stocker 3Go dans 1 seul c'est un peu chaud ! En fait je veux pouvoir stocker les diffèrentes valeurs RGB de chaque pixel d'une image pour après y appliquer des masques. Pourquoi ? Ba parce que j'ai remarqué que lorsque j'actualise l'affichage de mon image cela va plus vite en lisant dans la RAM que sur le HDD. C'est surtout pour la vitesse de lecture et pour éviter de fragmenter mon HDD que je veux tout stocker en mémoire. Moi question allocation je connais les "new int" "delete ..." "..." "..." mais je maîtrise pas encore alors pour que j'utilise les mallocs c'est un peu mort.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 25 juin 2009 à 08:41
Vouloir faire du traitement de l'image sans maitriser l'allocation dynamique est suicidaire...
C'est facile, au lieu de faire:
int tableau[1024][768][1000];
tu fais int *tableau = new int[1024*768*1000];
Pour ton problème, ne pourrais -tu pas te contenter d'ouvrir deux, trois images à la fois
Regarde ce que fait la visionneuse windows; Lorsque tu regardes une photo, en arrière plan, elle charge la photo suivante...
Regarde ici : http://ImAnalyse.free.fr, tu trouveras un logiciel open source en taitement de l'image
A+.
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr