2011年5月6日星期五

c++类常见问题

c++类定义的时候,假如只是声明了,没有定义,用new生成对象时,会提示找不到symbol的错误。

*** glibc detected *** free(): invalid pointer: 0x0000000000517966 ***

已放弃

重现方法:

 
country= new char[MAXBUF];
 
if((index=strstr(country,"省"))!=NULL)
 
{
 
    cout<<"find:"<
 
  <
  
 
 
    country=index+2;
 
}
 
if(country)
 
{
 
    delete country;
 
    country=NULL;
 
}
 
 

  new 出来的地址,不能移动,可以定义一个新的指针指向该位置,然后用新的指针进行处理,不能移动原始的指针,否则出 invalid pointer的错误。

没有评论:

发表评论