The most common reason for this error is infinite recursion:
int function()
{
Or a deep recursion function that compiles but overflows on use:
void function (argument)
Which can be fixed by using stack loops:
Stack overflow caused by infinite recursion:
bool ifCollision()
return function();
}
Or a deep recursion function that compiles but overflows on use:
void function (argument)
{
if (condition)
{
function (argument.next);
}
}
stack.push(argument);
while (!stack.empty())
{
argument = stack.pop();
if (condition)
{
stack.push(argument.next);
}
}
Another possible cause could be by using stupidly large variables, the array below takes up 8 megabytes!
double x[1000000];
Previous examples I've accidentally coded:
Stack overflow caused by infinite recursion:
bool ifCollision()
{
if(oasisCollision)
{
}
}
if(oasisCollision)
{
}
}
bool oasisCollision()
{
if(condition)
{
ifCollision();
}
}
{
if(condition)
{
ifCollision();
}
}