2014-07-08 61 views
-5

這是什麼代碼做的正是:指針製作C程序崩潰

char* pointer=0; 
*pointer=0; 

我每次運行此代碼,程序崩潰!

+2

查找解除引用空指針 –

+0

顯然,你引用了你沒有保留的內存。 0通常用作NULL的值,因此地址0通常是讀寫保護的,因此寫入該地址會導致程序崩潰。 –

+0

尋求調試幫助的問題(「爲什麼不是這個代碼工作?」)必須包含**期望的行爲**,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。 –

回答

2

第一行:您爲char創建一個pointer變量,然後將其初始化爲地址零(NULL指針)。

第二行:您嘗試向pointer指向的地址寫入零。 地址零在您的進程可寫虛擬內存區域之外,因此您會遇到分段錯誤。

0

在您的第一行代碼中,您聲明瞭一個char指針,並將其初始化爲0.它不過是您將它指定爲NULL指針而已。


在你的第二行中,你試圖給NULL指針賦值,所以程序崩潰。