0

我对编程很陌生,似乎其中一个函数一旦运行在这行代码上就会给我这个错误:

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;
}

因此,如果您运行此代码块一次,然后在第二次运行它之前删除关于输出的前三行,您就会遇到我所面临的错误。

4

0 回答 0