Post#9 » Sat Aug 06, 2016 9:28 pm
I'll try to simplify. A computer program has two main forms of storage, the stack and the heap. The stack can be considered, very simplistically, as the memory used by the program to run itself. If it fills up, which it should never do in the normal execution of a program, it overflows. This condition causes the program to terminate immediately.
It usually happens if there's an infinite recursion - simplistically, pieces of code that invoke each other over and over until the stack is full of the data which corresponds to each individual piece of code.