定义了一个vector,然后通过循环向数组中赋值int nNum = myStruct.nsize();for(int i;i<nNum;i++)
{
.........variable//获得变量值,
myStruct.legs.push_back(variable);
}可是执行到push_back的时候,nNum的值就变化了,例如,原来为1,执行到这里,就变为36,不知道为什么会变化,我加了一个变量,保存nNum值,push_back后,再将变量值赋给nNum,这样又会出问题,当nNum为2的时候,第二次执行循环体,就会报assert错误,显示_ASSERTE(_CrtIsValid HeapPointer(pUserData))错误。盼解答 谢谢^_^
{
.........variable//获得变量值,
myStruct.legs.push_back(variable);
}可是执行到push_back的时候,nNum的值就变化了,例如,原来为1,执行到这里,就变为36,不知道为什么会变化,我加了一个变量,保存nNum值,push_back后,再将变量值赋给nNum,这样又会出问题,当nNum为2的时候,第二次执行循环体,就会报assert错误,显示_ASSERTE(_CrtIsValid HeapPointer(pUserData))错误。盼解答 谢谢^_^
for(int i=0;i<nNum;i++)另外,nNum 在循环内不要改变!
{
.........variable// 获得变量值,
myStruct.legs.push_back(variable);
}
----------------------------------
for(int i=0; i<myStruct.nsize(); i++)
{
...
myStruct.legs.push_back(variable);
}THis????
我帮你调试一下
int nNum = myStruct.size(); // 多了个字符 n哈哈...你这程序逻辑混乱啊..这个数组之前咋来的?
vector默认初始化,size是0