0

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

4

1 回答 1

1

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

因此,您的 if 语句是一段非常普通且合适的代码。

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

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

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

于 2013-11-22T05:01:43.303 回答