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