#include <vector>
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;
}