Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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++ 关闭应用程序时,ofstream导致指针损坏?_C++ - Fatal编程技术网

C++ 关闭应用程序时,ofstream导致指针损坏?

C++ 关闭应用程序时,ofstream导致指针损坏?,c++,C++,正如topic所说,这就是我能得出的结论 代码本身不是我的,所以我正在修改它,但我可以确认,当我使用流时,无论如何。我在关机时出错(仅在释放模式下)。在上面搜索,似乎是指针问题 类似这样的情况会导致问题,例如: out.open("test", std::ios::trunc); out.close(); 它可以运行一次,没关系 我不明白我该做什么,我以为close应该清理指针 但没关系,即使这样也不行: std::ofstream* o = new std::ofstream("test.w

正如topic所说,这就是我能得出的结论

代码本身不是我的,所以我正在修改它,但我可以确认,当我使用流时,无论如何。我在关机时出错(仅在释放模式下)。在上面搜索,似乎是指针问题

类似这样的情况会导致问题,例如:

out.open("test", std::ios::trunc);
out.close();
它可以运行一次,没关系

我不明白我该做什么,我以为close应该清理指针

但没关系,即使这样也不行:

std::ofstream* o = new std::ofstream("test.wav", std::ios::out | std::ios::binary);
o->close();
delete o;
流本身工作正常,我可以按预期使用它们,一切都很好。 不应该有任何其他干扰

有什么想法吗? 我希望这是一个简单的问题,我只是错过了这里

更新

我收到的错误如下:

onexitbegin_new = (_PVFV *) DecodePointer(__onexitbegin);

你得到了什么错误?为什么要使用指针?如果你非常想使用指针,为什么不使用智能指针呢?当你的程序只包含这两行代码时,你会出错吗?这听起来像是您的程序中的其他地方有一个导致内存损坏的bug。已更新错误。我真的不在乎我是否使用指针。我只是试着用ofstream指针看看它是否解决了问题,但没有。遗憾的是,我不能仅用这两行代码运行程序,但我觉得奇怪的是,只有在我使用ofstream时才会发生这种情况。任何洞察都是值得赞赏的。是的,内存正在被破坏。它很可能和流的
无关。看看别的地方。考虑堆栈损坏、堆损坏、错误指针使用、C风格的东西,比如“代码> MeMCPY < /代码>等。将程序降低到绝对最小值,这表明问题并从那里起作用。