[求助]便宜无错,第一次运行无问题.第二次运行出错....为什么?好奇怪啊以前没有遇到过类似问题...winxp系统
[求助]便宜无错,第一次运行无问题.第二次运行出错....为什么?
好奇怪啊以前没有遇到过类似问题...
winxp系统 mingw32的编译器 ide是codeblocks
代码如下.有知道的请指教一二 谢谢拉.....我很迷惑...
- C/C++ code
int ssq_cpp::ssq_fx(){ cout<<"准备完成,计算开始......"<<endl; for(int i=0; i<ysssq.size()-1; i++) { string tmp_str[8]; char* tmp_char=new char[strlen(ysssq[i].c_str())+1]; strcpy(tmp_char,ysssq[i].c_str()); cout<<"|"<<tmp_char<<"|"<<endl; tmp_str[0]=strtok(tmp_char," "); for(int j=1;j<9;j++) //出错点1 { tmp_str[j]=strtok(NULL," "); } cout<<tmp_str[8]<<endl; //出错点2 } cout<<"计算完成"<<endl; return 0;}出错点1 和 2 在输出和赋值时出错 原因不明...
ysssq是个vector<string>类型
内部数据结构是
id date int1 int2 int3 int4 int5 int6 int7
每个参数 以 空格分开.我的代码本意是想把每行数据,分解到数组中分别计算....
[解决办法]
tmp_str数组只有8个,越界了
strlen(ysssq[i].c_str())可以改成ysssq[i].length()
顺便char*和string混用看着有点……
