读书人

c++中debug error有关问题

发布时间: 2012-04-13 13:50:24 作者: rapoo

c++中debug error问题
先贴下程序源代码

C/C++ code
  string **split_p;//split_p是读文件之后的存放的值,split_p[i][j],j=0是value值,j=1是pixel值  split_p=new string*[split_num];  ifstream fin;  fin.open("afterbtc.txt");  if(!fin)  {    cout<<"the afterbtc.txt in sort_block of Block has not open"<<endl;    exit(1);  }  ofstream fout_sort("sortblock.txt");  int i=0;//i作为split_p里的数  int j=0;//j作为分割字符串里的数  string sortblock_str="";  char *strp;  char strpp[100];  char *char_split;  string string_split[2];  while(!fin.eof())  {    //每次读取一行    getline(fin,sortblock_str);    strp=strcpy(strpp,sortblock_str.c_str());    //分割字符串    char_split=strtok(strp,",");    j=0;    string_split[0]=" ";    string_split[1]=" ";    while(char_split!=NULL)    {      string_split[j]=string(char_split);      char_split=strtok(NULL,",");      j++;    }    split_p[i]=new string[2];    split_p[i][0]=string_split[0].c_str();    split_p[i][1]=string_split[1].c_str();    i++;  }  for(i=0;i<5;i++)  {    for(int j=0;j<2;j++)    {     cout<<split_p[i][j].c_str()<<endl;    }  }    fout_sort.close ();  fin.close();    for(i=0;i<split_num;i++)  {   delete [2]split_p[i];   split_p[i]=NULL;  }  delete [split_num]split_p;  split_p=NULL;   //delete strp;  //delete char_split;

程序运行到最后指针释放的时候出现debug error错误。我把哪几个指针释放的全都注释掉,就没有错误了。不知道为什么,请高手解答。非常感谢

[解决办法]
char *strp;
strp=strcpy(strpp,sortblock_str.c_str());

strp不用释放
同理,char_split也不用释放

读书人网 >C++

热点推荐