2013-11-22 103 views
0

我在Windows7 Professional(32位)上使用C++ Builder XE4。如何知道TStringList是否被刷新

我對TStringList有一個問題;

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

我以爲檢查NULL可能工作,但它沒有。

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

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

上述代碼顯示「not empty」對話框。

什麼是標準的方式來檢查新的或非新的TStringList?

回答

1

c/C++將指針初始化爲NULL是非常平常的事情,並且只要它們沒有指向有效的東西,它們就是null。

因此,你的if語句是一個非常普通和適當的代碼片段。

但是,這確實需要初始化您的變量。

除非在全局/文件範圍聲明,否則行:TStringList * list;不會將變量初始化爲任何特定值 - 這會使其指向隨機廢話。

您需要將其更改爲TStringList * list = NULL; (或類似的,有些人不喜歡「NULL」)

+0

非常感謝。如你所說,我將在聲明中使用'TStringList * list = NULL'。然後我檢查變量的NULL。 – sevenOfNine

相關問題