C语言 如何修复分段错误



当我运行代码时,我不断收到一条消息,指出我有分段错误。我用 GDB 做了一个核心转储,它告诉我我的问题在于 p = p->next;int 下面的函数。有人可以帮助我了解我做错了什么以及如何修复它吗?我知道分割错误与指针使用不正确有关,但我不确定 p = p->next 有什么问题。

int list_size(const list_t *h) {
node_t *p = *h;
int r = 0;
do {
    r += 1;
    p = p->next;
} while (p);
return r;
}
在使用空

指针之前检查它们。

改变

do {
    r += 1;
    p = p->next;
} while (p);

while (p)
{
    r += 1;
    p = p->next;
}

相关内容

  • 没有找到相关文章

最新更新