Bonjour,
je travaille sur un projet en infographie sur le lancé de rayons (Ray Trace). Sans rentrer dans les détails, voici le problème que j'ai:
J'ai une classe CPixel qui a 5 int comme attributs (x,y,r,g,b) qui sont les coordonnées et la couleur du pixel.
J'ai un tableau de CPixels à deux dimensions représentant l'ecran. Le problème est que dès que le tableau devient trop grand, il y a une erreur à l'exécution du programme.
	
	Unhandled exception at 0x00406125 in RayTraceVisual.exe: 0xC00000FD: Stack overflow.
 
voici un code simplifié qui montre le problème:
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 |  
 
#include <cstdlib>
#include <iostream>
using namespace std;
 
class CPixel
{
private:
	int r, g, b;
	// coordonnées dans le repere
	int x,y;
};
 
 
int main()
{
    cout << sizeof(CPixel) << endl;
    CPixel grille[640][200];
    cout << sizeof(grille) << endl;
 
    system("PAUSE");
    return(0);    
} | 
 Si je change la taille du tableau à [200][200], il n'y a plus d'erreur.   Tout ça est bizarre car la taille d'une instance de classe CPixel est de 20 octets. Un tableau de 640*200*20 = 2 560 000 octets ne devrait pas poser de problèmes, si ?
 Tout ça est bizarre car la taille d'une instance de classe CPixel est de 20 octets. Un tableau de 640*200*20 = 2 560 000 octets ne devrait pas poser de problèmes, si ?
J'ai 512 Mo de ram.
merci pour votre aide.
						
					
Partager