Stack overflow caused by recursive function
Being a beginner to C++ programming and computer systems architecture, I'm still learning the basics of C++. Yesterday I read about recursive function, so I decided to write my own, here's what I wrote : (very basic) int returnZero(int anyNumber) { if(anyNumber == 0) return 0; else { anyNumber--; return returnZero(anyNumber); } } And when I do this : int zero1 = returnZero(4793 ); it causes a stack overflow, however, if I pass the value 4792 as parameter, no overflow occurs. Any ideas as to why ? Whenever you call a function, including recursively, the return address and often the arguments