当前位置: 代码迷 >> VC >> vector push_back出错(release版本),该如何处理
  详细解决方案

vector push_back出错(release版本),该如何处理

热度:1819   发布时间:2013-02-25 00:00:00.0
vector push_back出错(release版本)
如题,我这个vector当作函数参数传入,在函数体内push_back,debug版本正常,release版本出现异常
函数如下
void function(vector<int *> *list)
{
int *pInt=new int;
list->pushback(pInt);
}

------解决方案--------------------------------------------------------
估计是list参数错误,看看是怎么来的。
------解决方案--------------------------------------------------------
估计不是这个地方错,看程序崩溃在哪
------解决方案--------------------------------------------------------
探讨
我传list这个指针进来,release版本地址怎么是零的,郁闷,debug有地址

------解决方案--------------------------------------------------------
探讨
我传list这个指针进来,release版本地址怎么是零的,郁闷,debug有地址

------解决方案--------------------------------------------------------
release版本在调试的时候不能正常显示数据信息。
------解决方案--------------------------------------------------------
我觉得你这个地方使用的就有问题。
void function(vector <int *> *list) 

int *pInt=new int; 
list->pushback(pInt); 
}
完全可以这么写
void function(vector <int>& list) 
// sizeof(int) == sizeof(point),而且这样写你还不用考虑内存泄漏的问题,否则在释放vector之前你还要主动释放in*指向的内存。

list.pushback(sizeof(int));
}

最好是把你调用的地方的代码给发出来这样才能看出来问题。
  相关解决方案