创建一个stackoverflow需要多少个函数

How many functions to create a stackoverflow?

本文关键字:多少 函数 stackoverflow 一个 创建      更新时间:2023-10-16

在使用带有2GB RAM的Visual C++的Windows XP上,堆栈上必须同时有多少函数才能创建堆栈流?(即在递归函数中)

对于其他类似的情况,有没有一种简单的方法可以计算出来?

仅仅从编译器中是无法知道的。堆栈溢出是由于堆栈溢出而发生的。堆栈的大小取决于函数采用的参数、函数使用的局部变量以及编译器优化。甚至还有一些C99函数,我相信它们会直接从堆栈中分配空间。

堆栈大小的限制由编译器开关决定,而不是由计算机中的RAM大小决定。因此,需要多少调用才能溢出更多地与编译器设置有关,而不是与内存有关。

这不是你可以先验地确定的。至少,不是琐碎的。

您可以尝试无限递归。。这是导致堆栈溢出的常见原因之一。

int f() { g(); } int g() { f(); }