相关疑难解决方法(0)

在C++中递归到main()是否合法?

我读到C++标准禁止递归main(),但是g ++编译以下代码而没有抱怨:

int main()
{
    main();
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以澄清这个吗?

c++ recursion standards program-entry-point

45
推荐指数
4
解决办法
3542
查看次数

在c中的main()中调用main()

是否可以在c中main()main()函数内调用?

c

25
推荐指数
3
解决办法
4万
查看次数

为什么在C++中不允许调用main()

C++03 3.6.1.3:函数main不得在程序中使用(3.2)....

我想知道为什么这个规则存在...是否有人知道任何系统/实现,如果使用main,它将是一个问题?

PS 1.我知道该术语的定义used.2.我知道有一些简单的解决方法,比如从main()调用单个MyMain()并使用MyMain()代替.3.问题是关于现实世界的实施,如果不存在限制则会产生问题.谢谢!

c++ program-entry-point

16
推荐指数
3
解决办法
803
查看次数

用c ++调用main()本身?

#include <iostream>
#include <cstdlib>

int main() {
    cout << "!!!Hello World!!!" << endl;
    system("pause");
    return main();
}
Run Code Online (Sandbox Code Playgroud)

上面的工作,但它硬编码main(),是否有一个神奇的变量来获得当前的运行功能?

c++

12
推荐指数
3
解决办法
1万
查看次数

主C++上的递归调用

可能重复:
主函数可以在C++中调用自身吗?

我发现这个问题非常有趣但有点虚幻.问题6.42 C++如何通过Dietel编程"可以在你的系统上主要调用主程序吗?编写一个包含函数main的程序.包括静态局部变量计数并初始化为1.每次调用main时,后递增并打印计数值编译你的程序.会发生什么?

我编写了如下的程序,但是我在10次之后使递归停止,好像我要保持它运行它将停止在41000左右的值.

我的问题:在c ++中调用递归main函数是如何合法的,如果这个程序被执行到堆栈溢出或内存故障等等.请解释.

#include <iostream>
using namespace std;
int main()
{
       static int count = 0;
       count++;
       if(count <= 10) {
                cout << count << endl;
                return main(); //call main
                }//end if

       system("pause");
       return 0;//successful completion
}//end main
Run Code Online (Sandbox Code Playgroud)

谢谢

c++

7
推荐指数
1
解决办法
5155
查看次数

取main()函数的地址是不合法的吗?

根据这个答案, 使用函数main()是非法的(§3.6.1.3),如果它的名字出现在一个可能被评估的表达式(§3.2)中,则使用一个函数.

假设我有这个代码:

printf( "%p", &main );
Run Code Online (Sandbox Code Playgroud)

其中函数名称main()出现在表达式中&main.

上面的代码是非法的吗?

c++ program-entry-point function

7
推荐指数
1
解决办法
711
查看次数

为什么std :: cout << main << std :: endl打印1?

#include <iostream>

int main(){
    std::cout << main << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么在命令行中打印1?

c++

6
推荐指数
1
解决办法
663
查看次数

我如何获得一个函数来调用调用它的函数?

我希望以下简单函数调用调用它的函数,但是函数由多个函数调用,因此它需要识别哪个函数专门调用它然后调用它.

int wrong()
{
    std::cout << "WRONG \n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

作为后续行动,这种功能是否会更好地表达为空白?

c++

6
推荐指数
1
解决办法
123
查看次数

使用CodeBlocks忽略在C++中调用main函数

可能重复:
主函数可以在C++中调用自身吗?

我决定使用CodeBlock IDE通过调用main函数进行一个小测试,这应该是一个非法的行为.

EX:

#include <iostream>
using namespace std;

int main()
{
  cout<<"hello"<<endl;
  main();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,在代码块中我能够编译这个混乱.有谁知道为什么?

输出:你好

c++ compiler-construction program-entry-point codeblocks

3
推荐指数
1
解决办法
624
查看次数

当函数调用另一个函数时,函数使用的内存会发生什么变化?

如果我有以下代码:

void bar(){
    int x = 1;
    foo();
}

void foo(){
    while(true);
}
Run Code Online (Sandbox Code Playgroud)

调用when时int x使用的内存会发生什么变化?它被释放了吗?我知道如果函数返回则释放内存,但是在这种情况下函数根本不会返回.bar()foo()

如果我使用这个代码,其中bar调用foo,反过来,调用bar等等,程序最终会耗尽内存,还是新的函数实例会被新代码替换?

void bar(){
    int x = 1;
    foo();
}

void foo(){
    int y = 1;
    bar();
}
Run Code Online (Sandbox Code Playgroud)

c c++ memory

2
推荐指数
1
解决办法
806
查看次数