我一直对这个代码,我相信我的逻辑是正确的,但它一直扔分割故障。我只是希望得到另一双眼睛来帮助我看看我做错了什么。谢谢你的时间。段错误使用C合并排序功能编码
回答
它看起来像你在这里使用了错误的数组下标:
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]
为NULL
值。我认为你需要在每个代码块的末尾添加一个continue;
。否则,您会发出以下if
报表并将NULL
传递给strcmp()
。
你真的需要测试NULL
,当你有count
参数告诉有多少项是每个阵列中?
良好的渔获,但并不十分修复错误 – silentman45 2013-03-15 20:26:06
@ silentman45:你还修复了'ARRAY3 [K] =(数组1 [J]);下方'分配? – Blastfurnace 2013-03-15 20:27:30
雅除此之外,代码似乎没问题我有点新的C,所以我仍然试图找出究竟是什么抛出分段错误。我尝试了@cdarke的建议,但是它出来说没有堆栈,所以我不确定如果我做对了,除了这一个功能外,其他所有工作都正常。 – silentman45 2013-03-15 20:35:12
- 1. 合并排序代码C++
- 2. 功能排序错误
- 3. 错误的合并排序
- 4. 合并排序错误
- 5. 计划:合并和排序功能
- 6. 合并排序程序错误
- 7. C:仅适用于大文件的合并排序上的段错误
- 8. Mongdb组合限制并使用排序查找功能
- 9. 使用汇编代码程序发生分段错误错误
- 10. 使用向量合并排序C++
- 11. 合并排序Python - 排序功能的问题
- 12. Clojure简单的排序功能错误
- 13. 错误的合并排序结果
- 14. JavaScript的合并/排序致命错误
- 15. 合并排序 - 错误的输出
- 16. 递归合并排序,大数组的分段错误
- 17. C++合并排序不会合并?
- 18. 合并排序算法编译错误[帮助]
- 19. 混合使用C#功能
- 20. 数组排序功能 - C++
- 21. C++排序阵列功能
- 22. 排序功能停止工作没有任何错误 - C
- 23. 在选择排序功能中的错误C
- 24. 实现合并排序C++
- 25. 合并排序(pthreads)C++
- 26. Visual C++合并排序
- 27. 在C中使用快速排序实现的段错误
- 28. 使用lambda错误的C++排序
- 29. 为什么不能正确合并排序功能?
- 30. 插入排序中的分段错误在C排序
你传递什么参数,将调用赛格故障? – Barney 2013-03-15 20:08:21
它的两个排序数组及其长度,以及第三个数组,它们是空的以合并它们。 – silentman45 2013-03-15 20:11:03
我在问什么是两个数组传入?例如[1,2,3],[4,5,6] – Barney 2013-03-15 20:12:24