DarkmoonYZW
DarkmoonYZW
采纳率100%
2019-11-27 16:12

为什么函数中的L*new报错,后面的p->next=new也不行?

已采纳

图片说明

图片说明
为什么VS2019上报错?

#include"1.h"
typedef struct slist

{
int id;
struct slist* next;
}L;
//创建一个节点

L* create_node(int data)
{
//给每个节点分配结构体一样的空间大小
L* p = (L*)malloc(sizeof(L));
if (NULL == p)
{
printf("malloc error!\n");
return NULL;
}
//由于结构体在未初始化的时候一样是脏数据,所以要清
memset(p, 0, sizeof(L));
//初始化第一个节点
p->id = data;
//将节点的后继指针设置为NULL
p->next = NULL;

}

//链表的尾插
void tail_insert(L* pH, L*new)
{

//获取当前的位置 
L* p = pH;
//如果当前位置的下一个节点不为空 
while (NULL != p->next)

{
    //移动到下一个节点 
    p = p->next;
}
//如果跳出以上循环,所以已经到了NULL的这个位置
//此时直接把新插入的节点赋值给NULL这个位置 
p->next =new;

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答