c++ builder关于内存释放
TStrings *b=new TStringList();这样调用后,怎么样释放掉,我用delete b;编译不出错,可运行后会出错,为什么了?
b->Clear()好像可以。不知道释放是不是要调用他。
[解决办法]
TStrings *b=new TStringList(); TStrings???TstringList?
[解决办法]
为什么要把b声明成TStrings?
[解决办法]
释放就是delete就可以了。
你这里出错应该是函数返回的指针不需要你释放,比如在你delete后面的代码中又被重新释放了。
或者函数返回的指针本身就是非法指针
或者其他代码问题引起的。
[解决办法]
TStrings *s;
s = new TStringList();
s->Add("hello");
delete s;
s = NULL;
TStrings *s;
s = new TStringList();
s->Add("hello");
s->Clear();
delete s;
s = NULL;
你干脆这样用
TStringList*s;
s = new TStringList();
s->Add("hello");
s->Clear();
delete s;
s = NULL;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStrings *s;
s = new TStringList();
s->AddStrings(Memo1->Lines); //这样赋值
s->Clear();
delete s;
s = NULL;
}