首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vector.push_back()报错,各位大神

2012-06-07 
vector.push_back()报错,求助各位大神bool CCalutionFactor::ParseFactorName(string FactorFileName){cha

vector.push_back()报错,求助各位大神
bool CCalutionFactor::ParseFactorName(string FactorFileName)
{
char InFileNameBuf[512];
memset(InFileNameBuf, 0, 512);
strcpy(InFileNameBuf, FactorFileName.c_str());

char* p;

p = strtok(InFileNameBuf, ";");

while(p)
{
string NameBuf(p);
printf("NameBUf %s \r\n", NameBuf.c_str());

InFileName.push_back(NameBuf);
p=strtok(NULL,";");
}
return true;
}
这是我写的一段程序,作用是把string按;拆分,然后push到vector中。
以前好好的,昨天突然报错,
错误提示
Unhandled exception at 0x100303b9 (Calculation_Model.dll) in ExeTest.exe: 0xC0000005: Access violation reading location 0x00000014.
我跟进了一下。错误行在vector文件的
size_type size() const
{// return length of sequence
return (_Mylast - _Myfirst);
}
就是return行。求助各位,帮帮忙啊。


[解决办法]
应该不会吧,看看是不是别的什么地方出了问题?
[解决办法]
你先看看你有没有涉及多线程吧
[解决办法]
这段代码看不出什么问题。看看其它地方是怎么操作InFileName的。
或者会不会是长度512的临时数组越界了?
[解决办法]
既然没有跨模块传递包含vector的对象 那你就检查所有使用vector对象里面的元素的时候vector的size是不是都不为0.
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

热点排行