3
我正在使用結構實現鏈接列表。我有一個結構 -通過C中的雙指針訪問結構元素
typedef struct llist node;
typedef node *nodeptr;
struct llist
{
int data;
nodeptr next;
};
現在讓我們說我聲明一個變量nodeptr *ptr;
。如何使用ptr
訪問會員data
和next
?
我正在使用結構實現鏈接列表。我有一個結構 -通過C中的雙指針訪問結構元素
typedef struct llist node;
typedef node *nodeptr;
struct llist
{
int data;
nodeptr next;
};
現在讓我們說我聲明一個變量nodeptr *ptr;
。如何使用ptr
訪問會員data
和next
?
你先尊重第一個指針然後第二個指針。
要訪問數據和明年在結構聲明將圍繞需要PTR因爲->
具有更高的優先級比*
喜歡這個
(*ptr)->data = 5;
(*ptr)->next = temp;
支架。
->
相當於寫入*.
(例如ptr->data
相同*ptr.data
)。
所以說我想分配一些內存到'ptr',是'(* ptr)=(nodeptr *)malloc(sizeof(nodeptr))'正確嗎? – nsane
你可以嘗試,但因爲ptr將指向隨機地址你可能會得到分段錯誤,所以它是安全的應先創建一個指向結構的指針然後分配給ptr的地址。 – const