读书人

C++ builder的内存储器释放: [ 自己添

发布时间: 2013-10-24 18:27:24 作者: rapoo

C++ builder的内存释放: [ 自己添加public成员, 构造函数中new ]

[解决办法]
关于 delete 与 delete []
如果不匹配,可能 codeguard 会错报的。如果不用 codeguard 之类的来做内存监测,那个对于 析放单个实例来说,一般应该没区别。不过,还是建议严格匹配,因为严格匹配总是正确的,我可不想我的代码引发其他异常。

[解决办法]
(1) 不需要...以建立窗口例 :

TForm1 *Form1; // 主窗口
TForm2 *TestFormA; // 行生命期主窗口相依

// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
// 以 VCL 制...主窗口 Destroy ...TestFormA 被放
TestFormA = new TForm2(this);
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)


{
TestFormA->ShowModal();
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// 即用即收
TForm *TestFormB = new TForm2(this);
TestFormB->ShowModal();
delete TestFormB; // 此一定要加 delete 放 TestFormB
}

读书人网 >C++ Builder

热点推荐