在C语言中通过双指针访问结构元素
我正在使用结构实现链表。我有一个结构-在C语言中通过双指针访问结构元素,c,pointers,linked-list,singly-linked-list,double-pointer,C,Pointers,Linked List,Singly Linked List,Double Pointer,我正在使用结构实现链表。我有一个结构- typedef struct llist node; typedef node *nodeptr; struct llist { int data; nodeptr next; }; 现在让我们假设我声明了一个变量nodeptr*ptr。如何使用ptr访问成员数据和next 要访问数据,structure语句中的下一个 (*ptr)->data = 5; (*ptr)->next = temp; 由于->的优先级高于*,因此
typedef struct llist node;
typedef node *nodeptr;
struct llist
{
int data;
nodeptr next;
};
现在让我们假设我声明了一个变量
nodeptr*ptr代码>。如何使用ptr
访问成员数据
和next
要访问数据,structure语句中的下一个
(*ptr)->data = 5;
(*ptr)->next = temp;
由于->
的优先级高于*
,因此需要在ptr周围加括号
->
相当于写入*。
(例如ptr->data
与*ptr.data
相同) 假设我想给一个ptr
分配一些内存,那么(*ptr)=(nodeptr*)malloc(sizeof(nodeptr))
正确吗?你可以尝试一下,但是由于ptr指向随机地址,你可能会出现分段错误,所以应该先创建一个指向结构的指针,然后将其地址分配给ptr。