Can i know what is stack overflow in c?explain it in simple words pls | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Can i know what is stack overflow in c?explain it in simple words pls

20th Dec 2016, 4:35 PM
bruce logan
bruce logan - avatar
2 Answers
+ 1
I like Austin's answer :) but the Stack Overflow website is actually named after the very real event - the crash you will experience if your stack overflows. The stack is an area in memory reserved for functions and their variables while they are being executed. It can grow "up" or shrink "down" depending on the level of nested function calls. when funcA calls funcB it gets "pushed" onto the stack (and the stack grows) and when funcB returns it gets "popped" off the stack. So the stack is a bit like a "dagwood" sandwich, where every layer represents a function in the chain of nested function calls currently being executed. Something like this: void funcD() { //Here stack is CRuntime|main|funcA|funcB|funcD } void funcC() { //Here stack is CRuntime|main|funcA|funcB|funcC } void funcB() { //Here stack is CRuntime|main|funcA|funcB funcC(); funcD(); } void funcA() { //Here stack is CRuntime|main|funcA funcB(); } void main() { //Here stack is CRuntime|main funcA(); } So how do you overflow your stack - by simply too many nested calls function calls that exceed the maximum stack space allowed by the OS. The following (recursive) program should do it: void foo(){ long x[10000]; foo(); } int main() { foo(); return 0; }
20th Dec 2016, 5:41 PM
Ettienne Gilbert
Ettienne Gilbert - avatar
0
stack is simply a memory space where the variables you create gets stored. when the stack is full, it is called a stack overflow condition.
20th Dec 2016, 4:43 PM
Nikunj Arora
Nikunj Arora - avatar