c语言中,如果我让节点指针指向下一个节点,但下一个节点没有赋值会怎么样?

我们首先来试试下一个节点动态分配了内存的

(头文件略过)
struct node
{
 int Data;
 struct node *next;
};

int main()
{
	struct node *A=(struct node *)malloc(sizeof(struct node));
	A->next=(struct node *)malloc(sizeof(struct node));
	A->next->Data=3;
	A->next->next=NULL;
	A=A->next;
	printf("%d",A->Data);

return 0;
}

它的输出结果是3

然后我们来试试没有分配动态内存的

struct node
{
 int Data;
 struct node *next;
};

int main()
{
	struct node *A=(struct node *)malloc(sizeof(struct node));
	A->next->Data=3;
	A->next->next=NULL;
	A=A->next;
	printf("%d",A->Data);

return 0;
}

运行显示不出任何结果

那么我哪一个没有动态分配内存的指针究竟指向了什么?
是随意指向成为了一个野指针吗?
还是指向了NULL(一般这个要设置才能默认指向NULL吧?)
求教。

猜你喜欢

转载自blog.csdn.net/weixin_43316730/article/details/90028997
今日推荐