首页 新闻 会员 周边 捐助

编程新手数据结构遭劫,请求大佬出手帮助。错误:取消对NULL指针“newNode”的引用,在创建新节点那里报错了。

0
[待解决问题]

void insert_LinkList(LinkList list, int pos, void* data)
{
if (list == NULL)
{
return;
}
if (data == NULL)
{
return;
}
struct LList* myList = list;
if (pos<0 || pos>myList->m_Size)
{
//无效位置,尾插
pos = myList->m_Size;
}
//创建临时节点
struct LinkNode* pCurrent = &myList->pHeader;
for (int i = 0; i < pos; i++)
{
pCurrent = pCurrent->next;
}
//通过循环找出插入位置前驱

//创建出新节点

struct LinkNode* newNode = malloc(sizeof(struct LinkNode));
newNode->data = data;
newNode->next = NULL;

//将新节点插入到链表中
newNode->next = pCurrent->next;
pCurrent->next = newNode;
//更新链表长度
myList->m_Size++;

}

Breeze~S的主页 Breeze~S | 菜鸟二级 | 园豆:202
提问于:2021-05-17 15:25
< >
分享
所有回答(1)
0

可能是你malloc以后没有判断malloc是否成功,malloc如果遇到内存不足等问题时会返回NULL,假如返回了NULL,
NULL->data就是非法操作,这个取NULL的内容的操作就叫做取消对NULL的引用,可以尝试在malloc下面加:
if(newNode==NULL)return 0;

随缘XD | 园豆:336 (菜鸟二级) | 2024-03-02 18:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册