Błąd "system.stackOverflowException" - z czym to się je i jak to naprawić?

0

Siema! Liczę na Waszą pomoc w tym przypadku, bo o ile wujek google znalazł na rozmaitych forach podobny błąd, o tyle nie umiem przełożyć podanych tam rozwiązań na swój program, a nawet nie bardzo wiem, o co z tym błędem chodzi - źle dobrane typy zmiennych, definicje tablicy czy co? Błąd wygląda tak, jak na obrazku w załączniku
(pojawia się dopiero kiedy uruchamiam program),
a kod tak:

#define _USE_MATH_DEFINES 
#define USE_CONSOLE 
#include <iostream>
#include <allegro.h> 
#include <cmath> 


using namespace std;

double y, x, m, n;

//funkcja 
double Wartosci_funkcji (int i)
{
double x=-1.4+0.01*i;
double y= -2*(pow(x,6))+3*(pow(x,5))-(pow(x,4))+4*(pow(x,3))+5*(pow(x,2))-6*x+7;
return y;
}

double bisekcja(double a,double b)
{
double x=abs((a+b)/2);
double y=-2*(pow(x,6))+3*(pow(x,5))-(pow(x,4))+4*(pow(x,3))+5*(pow(x,2))-6*x+7;
double m=-2*(pow(a,6))+3*(pow(a,5))-(pow(a,4))+4*(pow(a,3))+5*(pow(a,2))-6*a+7;
double n=-2*(pow(b,6))+3*(pow(b,5))-(pow(b,4))+4*(pow(b,3))+5*(pow(b,2))-6*b+7;
return y, m, n;
}

//main
int main()
{
double wartosc[360][360];

allegro_init();
install_keyboard();
set_color_depth(desktop_color_depth());
clear_to_color( screen, makecol( 255, 255, 255 ) );
set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0);

acquire_screen(); 



for (int i=0; i<360; i++)
{
for (int j=0; j<360; j++)
{
wartosc[i][j]= Wartosci_funkcji (i);
putpixel (screen, 100+i, 400-wartosc[i][j], makecol(200,0,125));
}
}

release_screen();

double a=-1.4, b=2.2; 
if (y>=(1/(1.0e10)))
{
bisekcja(a,b);
if((m*y)<0)
{
a=a;
b=x;
}
else
{a=x; b=b;}

if(x*n<0)
{ a=x; b=b;}
else 
{a=a; b=x;}
}
else
{cout<<"miesce zerowe: "<<x<<endl;}

double max=0, min=0;
for (int i=0; i<360; i++)
{
for (int j=0; j<360; j++)
{
if ( wartosc[i][j]>max)
{
max= wartosc[i][j];
}

if (wartosc[i][j]<min)
{
min=wartosc[i][j];
}
}

} 

cout<<"Ekstrema funkcji: "<<endl;
cout<<"wartosc maksymalna= "<<max<<endl;
cout<<"wartosc minimalna= "<<min<<endl;

readkey();
return 0;
system ("PAUSE");
}
END_OF_MAIN() 
0

Ciało allegro_init? w tym kodzie tutaj jest cały program, który napisałam, nic więcej do pokazania nie mam w tej kwestii ;)
EDIT: to znaczy, że błąd nie jest mój? Bibliotekę zainstalowałam poprawnie, inne programy z jej użyciem działają

1

zgaduję że to wina tej linijki

double wartosc[360][360];

może o tym świadczyć expection. Deklarujesz na stosie za duża wartość. Zmienne które zajmują dużo miejsca w pamięci powinniśmy deklarować na stercie. Czyli za pomocą new lub malloc

1 użytkowników online, w tym zalogowanych: 0, gości: 1