C编码中具有合并排序功能的分段故障

时间:2013-03-15 20:06:51

标签: c

我一直在研究这个代码,我相信我的逻辑是正确的,但它一直在抛出一个分段错误。我只是希望得到另一双眼睛来帮助我看清楚我做错了什么。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

看起来你在这里使用了错误的数组下标:

else if ((strcmp(*(array2 + i) , *(array1 + j)) < 0)) //compares first position in each array again

i下标array2下标应为j。您已将下标与array1交换。

顺便说一下,您知道可以说array1[i]而不是*(array1 + i)吗?

修改

您有两个if块,用于测试array1[i]array2[j]的{​​{1}}值。我认为您需要在每个代码块的末尾添加NULL。否则,您会点击以下continue;语句并将if传递给NULL

当你有strcmp()参数告诉每个数组中有多少条目时,你真的需要测试NULL吗?