在 C 中访问链表的第一个节点



所以我正在尝试使用该地址访问链接列表的第一个节点,这对我来说似乎没有多大意义。存储链接列表的结构定义为

/**
* Definition for singly-linked list.
* struct ListNode {
*     int val;
*     struct ListNode *next;
* };
*/

我已经初始化了一个链接列表

struct ListNode* l3;

每次我调用 l3->next 时,我都会在它前面加上

l3->next = (void *) malloc(size * sizeof(struct ListNode));

我已经存储了链表第一个节点的地址:

int* first;
first = (int *) l3; //noting that (void *) is also a valid cast

我确实得到了一个有效的地址打印出来0x1235270。我正在尝试使用

printf("%dn", first->val);

它给了我:

Line 29: request for member 'val' in something not a structure or union

错误。然而,当我首先在 leetcode 中返回时(因为我试图在那里做一个问题),它确实将其检测为链接列表(在输出中显示链接列表)。我想知道我做错了什么,以及我如何实际访问第一个节点的值。

对不起,这是一个非常愚蠢的错误。一旦我将指针从 int * 转换为结构节点 *,它就起作用了。

最新更新