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

时间:2017-04-04 17:06:52

标签: c pointers linked-list

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

\n

我已使用

初始化了一个链接列表
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */

每次我打电话给l3->接下来,我先跟

struct ListNode* l3;

我已将链表的第一个节点的地址存储为:

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

我确实从0x1235270打印出有效地址。我正在尝试使用

访问第一个节点的val
int* first;
first = (int *) l3; //noting that (void *) is also a valid cast

它给了我:

printf("%d\n", first->val);

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

1 个答案:

答案 0 :(得分:-1)

对不起,这是一个非常愚蠢的错误。一旦我将指针从int *转换为struct node *,它就可以了。