gpt4 book ai didi

c++ - 邻接表函数中的段错误

转载 作者:行者123 更新时间:2023-11-28 03:19:13 26 4
gpt4 key购买 nike

我正在尝试编写一个函数来对由邻接表表示的图形进行一些计算,但我遇到了一个我没有得到的段错误。基本上我是先“删除”一个节点,然后再重新插入它。这是我的代码:

int AdjList::bruteForce (node** list) {
int pointerIndex;
node* help;
node* help2;

for (int i=0; i<boundary; i++) {
huidigScore = 0;
help2 = list[i];
help = help2;
help2 = help2->next;
while (help2->next != NULL) {
help->next = help2->next;
help2->next = NULL;
pointerIndex = help2->number;

help2->next = help->next;
help->next = help2;
help2 = help2->next;

}
}
}

和列表初始化:

node** list;
node* help;
node* help2;
list = new node*[boundary];
for (int i=0; i<boundary; i++) {
list[i] = new node;
help = list[i];
help->next = NULL;
help->number = 0;
}

提前致谢。

最佳答案

在你的初始化 help->next 总是设置为 null,因此当涉及到

help2 = help2->next;
while (help2->next != NULL) {

help 2 为 NULL 并尝试访问 help2->while 循环中的 next 导致段错误。
编辑
同样的事情发生在 for 循环的最后一次迭代中,当 i 等于 boundary-1 时,help2 将保存指向列表中最后一个值的指针,help2->next 为 NULL,并且一切都将按照前面描述的场景进行。我在这里再次猜测列表中的最后一个条目将 next 设置为 NULL。

关于c++ - 邻接表函数中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15954398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com