错误代码:
struct Test
{
uint32_t a;
uint32_t b;
};
struct Test1
{
vector<Test> test;
};
Test1 tlist ;
memset(&tlist, 0, sizeof(Test1));
for (size_t m = 0; m < 100; m++)
{
Test t1;
t1 = {0,m};
tlist.test.push_back(t1);
}
错误原因:
memset将初始化结构体Test1的时候,更改了vector的指针值导致的。
解决方法:
使用Test1 tlist = {0};
来代替memset。
struct Test1
{
vector<Test> test;
};
Test1 tlist = {0};
for (size_t m = 0; m < 100; m++)
{
Test t1;
t1 = {0,m};
tlist.test.push_back(t1);
}