【发布时间】:2014-10-09 06:04:03
【问题描述】:
下面是代码:
#include <stdio.h>
int main()
{
printf("Stack Overflow");
main();
}
编译并执行此程序后,它将打印“堆栈溢出”,直到堆栈溢出。在这里,我知道堆栈溢出是什么意思,这意味着它将打印直到内存已满。我的问题是它是哪个内存?溢出的堆栈大小是多少?
【问题讨论】:
-
这段代码很可能不会产生堆栈溢出。编译器将发出尾调用,或者只使用 while(1) 循环。 (在这种情况下,两种优化都应该产生相同的汇编代码。)
-
这是一个非常笼统的问题!你可以在上面找到数千个类似的问题
标签: c stack-overflow