我对编程很陌生,似乎其中一个函数一旦运行在这行代码上就会给我这个错误:
std::string name;
在我返回 *this 之后,它会释放函数内部的所有 std::vector,以及与我使用的一些命名结构相关的那些。'name' 变量本身存储在另一个 std::vector 中,它是该类的成员。
这是否意味着字符串被写入一次,并且所有看起来应该都指向同一个引用的东西?或者也许是别的东西,但是在这一行上逐行运行调试器显然失败了。任何帮助,将不胜感激 !
注意 - 我已经删除了所有以前的代码,以显示一个更简单的例子来说明我遇到的麻烦:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
string a = "something";
ofstream output; output.open("a.dat", ios::out|ios::binary);
output.write((char*)&a, sizeof(a)); output.close();
ifstream input; input.open("a.dat", ios::in);
string b;
input.seekg(0);
input.read((char*)&b, sizeof(b)); input.close();
return 0;
}
因此,如果您运行此代码块一次,然后在第二次运行它之前删除关于输出的前三行,您就会遇到我所面临的错误。