郁闷啊!为什么BCB经常出现指针和内存错误?
在分析一个字符串的时候,我在定义了一个公共类,有如下函数:
char * __fastcall TBase::FilterString(char * str)
{
AnsiString s=str;
AnsiString aistr;
aistr= s.SubString(4,s.Length()-3 ) ;
char * bb=new char[aistr.length()+1];
strncpy(aistr.c_str(),bb,aistr.length()+1);
bb[aistr.length()+1]='\0';
return bb;
}
在其他文件中函数调用:
char * a="and b='cao'";
char * returns=FileterString(a);
ShowMessage(returns);
这段代码我测试了10多天了,一般情况下程序运行没有错误,但偶尔就会出错。
有时候我把char * a ="afaksfjksaiojewjiasdfasd00000" 之类的比较长的
字符串的时候就会有:acess vialotion 或者 pointer 之类的错误。记住,是有时候才会出错的。