从另一个函数调用 main

标签 c function program-entry-point

我是 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/

相关文章:

c - 全局 IPv6 地址无法在 Solaris 上绑定(bind)

c - 如何实现或模拟 MADV_ZERO?

javascript - 如何实现一个也有其他原型(prototype)的函数

php - php中的字符串函数练习

c# - "does not contain a static ' 主要 ' method suitable for an entry point"

c++ - 为什么初始化列表不能作为main的参数?怎么提议呢?

c - 如何检查是否未获取互斥量?

C - SizeOf 指针

c++ - 我可以在函数定义中使用函数 typedef 吗?

java - 在 main 中调用一个类