2014-01-28 103 views
3

我正在使用結構實現鏈接列表。我有一個結構 -通過C中的雙指針訪問結構元素

typedef struct llist node; 
typedef node *nodeptr; 
struct llist 
{ 
    int data; 
    nodeptr next; 
}; 

現在讓我們說我聲明一個變量nodeptr *ptr;。如何使用ptr訪問會員datanext

回答

3

你先尊重第一個指針然後第二個指針。

要訪問數據和明年在結構聲明將圍繞需要PTR因爲->具有更高的優先級比*喜歡這個

(*ptr)->data = 5; 
(*ptr)->next = temp; 

支架。

->相當於寫入*.(例如ptr->data相同*ptr.data)。

+0

所以說我想分配一些內存到'ptr',是'(* ptr)=(nodeptr *)malloc(sizeof(nodeptr))'正確嗎? – nsane

+0

你可以嘗試,但因爲ptr將指向隨機地址你可能會得到分段錯誤,所以它是安全的應先創建一個指向結構的指針然後分配給ptr的地址。 – const