如何知道TStringList是否已被新建

时间:2013-11-22 04:33:43

标签: c++ c++builder c++builder-xe4

我在Windows7 Professional(32位)上使用C ++ Builder XE4。

我对TStringList有疑问;

我想要做的是知道TStringList变量是否是新的,以防止Add()方法到非新的TStringList;

我认为检查NULL可能有效,但事实并非如此。

TStringList *list;
// list = new TStringList();  // someone commented out by mistakes

if (list == NULL) {
    ShowMessage(L"NULL");
} else {
    ShowMessage(L"not empty");
}
return;

上面的代码显示“非空”对话框。

检查新建或未新建的TStringList的标准方法是什么?

1 个答案:

答案 0 :(得分:1)

c / c ++很常见的是将指针初始化为NULL,并且只要它们没有指向有效的东西就让它们为null。

因此,你的if语句是一个非常普通且适当的代码。

但是,这确实需要初始化变量。

除非在全局/文件范围内声明,否则行:TStringList * list;没有将变量初始化为任何特定值 - 这使得它指向随机废话。

您需要将其更改为TStringList * list = NULL; (或者类似的,有些人不喜欢“NULL”)