stack overflow error in C++ program
c++, class, pointers, visual-c++
Solution
Visual studio defaults to 1MB stack size, it looks like:
Complex G[HEIGHT][WIDTH];
will be just about 1MB, you can modify this using /F and the document says (emphasis mine):
Without this option the stack size defaults to 1 MB. The number argument can be in decimal or C-language notation. The argument can range from 1 to the maximum stack size accepted by the linker. The linker rounds up the specified value to the nearest 4 bytes. The space between /F and numberis optional.
The most obvious alternative would be to use dynamic memory allocation via new or std::vector.
Visual Studio as far as I know actually has one of the smaller default stack sizes:
platform default size
=====================================
SunOS/Solaris 8192K bytes
Linux 8192K bytes
Windows 1024K bytes
cygwin 2048K bytes
Mac OS X 8192K bytes
Problem
So i have this complex class , and i want to have an 2d array of complex numbers this is part of the code not all the code ``` class Complex { public: /* construction/destruction */ Complex(double r, double i) { this->r = r; this->i = i; } Complex() { r=0.0; i=0.0; } ~Complex() { r=0.0; i=0.0; } /* operations */ Complex operator+(Complex &c) { return Complex( r+c.r, i+c.i ); } double r, i; }; int main() { const int HEIGHT = 256; const int WIDTH = 256; Complex G[HEIGHT][WIDTH]; } ``` so the line Complex G[HEIGHT][WIDTH]; is the line that causes the problem , any idea why ?