2017-10-16 50 views
-1

在C++中,如何測試指針是否已初始化?正如預期的那樣,這些不會運行。我如何測試?下面是代碼:如何測試TCHAR指針是否已初始化

TCHAR *sNullString; 
INT bInitialized; 
if (*sNullString) 
    bInitialized = TRUE; 
if (sNullString) 
    bInitialized = TRUE; 
+0

你必須先初始化'TCHAR * sNullString;'。 – user0042

+0

這就是問題的關鍵。我如何*測試*。當你的回答沒有解決這個問題時,你將問題標記下來? – JeffR

+2

有沒有辦法告訴。 – Rotem

回答

3

在C++中,如何測試是否指針已經初始化?

在C++中,不可能測試變量(指針類型或其他)是否已被初始化。同樣適用於動態分配的對象。

我該如何測試?

你沒有,因爲你不能。相反,您編寫代碼以便您可以毫無疑問地證明指針已初始化。舉個例子:

TCHAR *sNullString = nullptr; 

在這裏,這是毫無疑問:sNullString被初始化,並且它指向空。

+0

我已經繼承了源代碼,並且看到有沒有辦法做一個快捷方式來測試變量是否被初始化。既然不行,那就分析一下一些源代碼吧!謝謝。 – JeffR

+2

@JeffR開啓警告。我相信,每個編譯器都有辦法警告你未初始化的變量。 –

+0

您(或某人)知道它在Visual Studio 2017中的位置嗎? – JeffR