Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我们有函数:
void foo(int x) { foo(x); }
在我的机器(i7)上将运行大约 260k 次并产生分段错误。知道为什么会这样吗?
每次调用函数时,它都需要运行时堆栈上的空间。这是该函数的本地变量分配内存的地方。正在发生的事情是你递归了很多次,以至于你的堆栈空间用完了——堆栈溢出。(这个网站的名字!)
另见:http ://en.wikipedia.org/wiki/Stack_overflow
每次调用函数时,系统都会将其调用存储在堆栈中,在这种情况下,系统将继续存储函数调用,直到系统堆栈变满。这种状态称为堆栈溢出。