可能重複:
Uninitialized values being initialized?未初始化的DWORD變量賦予隨機值?
void Encrypt(FileContent *pFile)
{
/* Get the key total ascii value */
DWORD asciiKeyValue;
for (DWORD i=0; i < pFile->keyLength; i++)
{
asciiKeyValue += pFile->encKey[i];
}
_tprintf(_T("[*]DEBUG The encKey ascii value is: %ld\n"), asciiKeyValue);
}
我得到了放430
時DWORD asciiKeyValue
,但一旦DWORD asciiKeyValue = 0
是230
這是理所應當的。
有人對此有解釋嗎?如果asciiKeyValue
變量未分配明確的值,它是否會得到一個隨機值?
喜歡你的框架畫圖的例子。 – Abhineet
_Automatic_存儲時間變量不會被初始化。其他人(如靜態存儲)也可以。 – paxdiablo
確實;實際上現在我想到了這一點,很難總結變量何時初始化以及何時變量未初始化。但實際上,幾乎總是如果你依賴初始化,你應該明確地初始化。 (好吧,現在我正在通過我腦海中的例外......) – tenfour