【发布时间】:2016-04-23 19:12:13
【问题描述】:
我的问题是如何访问列表结构的节点结构中的 num 变量?我尝试了两种方法,它们都没有工作?我只是好奇为什么会这样。感谢任何帮助我知道这是一个新手问题的人。我对 c 和堆栈溢出相当陌生,希望我能从这个网站学到很多东西。
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int num;
struct node *next;
} node;
typedef struct list
{
node *ptr;
struct list *next;
} list;
int main()
{
list *p = malloc(sizeof(list));
//p->ptr->num = 5;
node *x;
x = p->ptr;
//x->num = 5;
return 0;
}
【问题讨论】:
-
在添加节点之前,列表不包含任何指向节点的指针。您需要为
x分配一个node以指向该节点,然后将p设置为指向该节点。只有这样您才能开始访问该值。因此,p->ptr = x;比反向分配更合理,但您仍然需要连接所有点。
标签: c struct linked-list