void deleteelement(linearlist *list, int power)
{
linearlist *p = list;
while (p->power != power && p->next != NULL)
//调试时显示错误在这一行
{
p = p->next;
}
if (p->power == power)
{
linearlist *dele = p;
p = p->precursor;
p->next = dele->next;
p = dele->next;
p->precursor = dele->precursor;
free(dele);
}
else
cout << "不存在这个元素!" << " ";
}
//如上文,这个函数用于删除线性表中的一项,在调用函数时编译通过但调试出错,报错为 [下面的框架可能不正确和/或缺失,没有为 kernel32.dll 加载符号]
我觉得可能是指针传递不正确从而不能正确的使用p->next,但是有不懂应该怎么写,求大神解答
可能是 delete 与 new 不匹配引起的,因为在代码中只看到了 delete 没有看到 new。
free对应的指针是malloc分配的吗,既然用cpp,那么就用new/delete。
看下p有没有分配内存,它是不是没有初始化