如何知道TStringList是否是新的

How to know whether the TStringList was newed

本文关键字:是否是 TStringList 何知道      更新时间:2023-10-16

我在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的标准方法是什么?

c/c++将指针初始化为NULL,并在指针不指向有效对象时将其设为NULL,这是非常常见的。

因此,if语句是一段非常普通和适当的代码。

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

除非在全局/文件范围内声明,否则行:TStringList*list;不会将变量初始化为任何特定的值——这会使它指向随机垃圾。

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