[C++] VS2022 引发了未经处理的异常:读取访问权限冲突。 _Pnext 是 0x8。

#include 

typedef struct Test {
    int a;
    std::vector<int> b;
};

int main(int argc, char* argv[])
{
    Test t;
    memset(&t, 0, sizeof(Test));  // 罪魁祸首,把对象b的所有成员都设置成了0
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    return 0;
}

改为


typedef struct Test {
    int a;
    std::vector<int> b;
};

int main(int argc, char* argv[])
{
    Test t{};    // <--
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    t.b.emplace_back(1);
    return 0;
}

你可能感兴趣的:(c++,开发语言)