Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 一个函数如何完成它的目标,只在返回到main之后才出现故障?_C++ - Fatal编程技术网

C++ 一个函数如何完成它的目标,只在返回到main之后才出现故障?

C++ 一个函数如何完成它的目标,只在返回到main之后才出现故障?,c++,C++,从我所看到的,有时在代码块中,某个代码只在其运行的某一部分时间起作用,怎么可能不重新编译这样的代码,它只在三分之二的时间起作用呢。 代码不应该总是起作用还是不起作用? 请注意,这些代码不依赖于时间,并且不断获取0xC0000005指针错误 另一方面,我有一个代码,做同样的事情 我尝试过让我怀疑不起作用的函数,打印一些东西,确认它确实完成了函数。我还怀疑这是因为它是一个改变某个物体的空函数 graph G (0); cout<<"Starting construction"<&l

从我所看到的,有时在代码块中,某个代码只在其运行的某一部分时间起作用,怎么可能不重新编译这样的代码,它只在三分之二的时间起作用呢。 代码不应该总是起作用还是不起作用? 请注意,这些代码不依赖于时间,并且不断获取0xC0000005指针错误

另一方面,我有一个代码,做同样的事情

我尝试过让我怀疑不起作用的函数,打印一些东西,确认它确实完成了函数。我还怀疑这是因为它是一个改变某个物体的空函数

graph G (0);
cout<<"Starting construction"<<endl;
G.Construct();
cout<<"Printing"<<endl;
cout<<G;
如果没有,则会打印:

Starting construction
Ending construction
我有:

其中S是std::向量

即使m=6,我也用m替换了6循环范围


这似乎解决了问题。未定义的行为处于最佳状态。

听起来代码中有未定义的行为。这意味着任何事情都可能发生。未定义行为的迹象。请提供。未定义行为可以解释这一点。没有适当同步的线程也可以,但是,这又是一个错误。简而言之:一个坏的/不正确的程序可以做任何事情。一旦你偏离了标准所保证的行为范围;我的问题更倾向于为什么它有时有效,有时无效,没有代码更改,没有重建,什么都没有。只是随机的。这不是一个很好的答案。这可能已经解决或隐藏了代码中的至少一个问题,但由于问题中缺少代码,其他人无法将问题中的点与此答案联系起来。@user4581301我刚刚展示了一些看起来不相关的东西,因为stl库通常表现良好,可能会导致此类错误。很抱歉,连接这些点意味着不要将任何事情视为简单的m=6。我甚至不知道什么是未定义的行为。另外,我用7,8,9做了不同的例子,所以我很确定它解决了这个错误。
Starting construction
Ending construction
    for (int i=0; i<6;i++)
    {
        S[i].resize(n);
    }