gpt4 book ai didi

c - 将数组成员与整数进行比较时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:56 24 4
gpt4 key购买 nike

我一直在写一个链接图的实现程序,具有寻找最短路径的能力。这是我的打印功能。我有一个标有路径的数组 我尝试在此处对它们进行排序并打印,但是在 if(pathTaken[i] == src) 行中我遇到了段错误。这里可能出了什么问题?

    void printShortestPath(int pathTaken[], int n, int src, int dest)
{
int i = n-1;
int j = 0;
int toCompare;
int printingOrder[n];
int startingnumber;
int stopper = 1;
printingOrder[j] = dest;
while(stopper != 0)
{
j++;
pathTaken[i] = printingOrder[j];
i = pathTaken[i];
if(pathTaken[i] == src)
{
stopper = 0;
}
else
{
if(j > n)
{
printf("No path from %d to %d found", src, dest);
stopper = 0;
}
}
}

最佳答案

你只检查 if (j > n) 但实际上 j == n 是越界的,你也可以使用 else if 代替一个单独的 elseif,像这样

else if (j >= n)
{
printf("No path from %d to %d found", src, dest);
stopper = 0;
}

或者您可以将条件添加到 while 控件中,例如

while ((stopper != 0) && (j < n))

或者您可以使用 for 循环,这似乎是这里的自然选择

for (j = 0 ; ((stopper != 0) && (j < n)) ; ++j)

关于c - 将数组成员与整数进行比较时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30444797/

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