我遇到了這個問題,我的結構指針總是默認初始化爲nil
。以下是我的代碼。結構指針總是初始化爲零
#include <stdio.h>
struct SomeStruct {
int x;
};
int main()
{
int array[2]; // If I change this to 1, the code works fine
struct SomeStruct *ptr;
printf("%p\n", ptr); // always prints "nil"
}
有人可以請解釋這裏發生了什麼。具體來說,爲什麼將數組的大小更改爲1會使代碼正常運行。
上面是一些較大的代碼的一部分,我能夠簡化這個問題。稍後我需要使用ptr
,但由於它是nil
,我得到了分段錯誤。
如果複製此代碼,此結果並嘗試1或2像你評論說,它將是相同=>(無)。你的ptr沒有設置爲任何值,所以它可能會使用目前堆棧中的垃圾值... – 2013-02-10 13:05:52