我是 C 新手,所以如果这个查询很基本,请原谅我。
我想从另一个函数调用main(),并使程序无限运行。代码在这里:
#include <stdio.h>
void message();
int main()
{
message();
return 0;
}
void message()
{
printf("This is a test message. \n");
main();
}
我希望看到这个程序无限运行。然而,它运行了一段时间,然后突然停止。使用我在测试消息旁边打印的计数器变量,我发现语句“这是一条测试消息”。打印了 174608 次,之后我收到一条错误消息
Segmentation fault (core dumped)
然后程序终止。这个错误是什么意思?为什么程序只运行了 174608 次(为什么不是无限次)?
最佳答案
无限递归导致堆栈溢出。在 main
中进行无限循环:
int main()
{
while (1)
{
//...
}
}
关于从另一个函数调用 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36235401/