我正在嘗試創建一個鏈接列表。所以,我聲明如下一個LL數據結構:檢查結構是否已被初始化或分配了一些內存
typedef struct linkedList
{
char* word;
struct linkedList* next;
} linkedList;
現在,我宣佈表示LL的頭一個全局變量爲linkedList* head = NULL;
現在,我很驚訝,雖然我分配一個NULL值指針我能夠進入下面的while
循環。
linkedList* node = head;
while(node != NULL);
{
//Why I am here when I have not yet malloc'ed head and through global variable initialization my head is NULL
}
正因爲如此,我感覺就像我沒有辦法來檢查,如果我的鏈表head
已被初始化或分配一些內存呢。我無法檢查node->next
,因爲它會導致分段錯誤錯誤,並且node == NULL
正在通過!
請注意是:
- 問題是嚴格的C語言
- 我不希望有其他的一些全局變量來跟蹤我的鏈表
head
是否已初始化或分配一些內存但。我想用我的鏈表數據結構來做到這一點。這是因爲假設我運送我的數據結構,並希望如果有人試圖刪除某些東西和鏈接列表然後清空,那麼應該打印/拋出一些意思完整的錯誤。
任何想法請。
在'while'行末尾有一個分號,所以它實際上什麼都不做。然後括號在whle之外形成一個獨立的塊。 – jamieguinan