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