【发布时间】:2013-06-05 10:02:15
【问题描述】:
能否请任何大师帮助我识别分段错误?分段错误似乎只在我的一个测试用例中出现问题,并且似乎在为结构中的特定指针分配内存时发生。这适用于所有其他测试用例,这有点奇怪。
这是我的代码:
http://pastebin.com/dfUqQnYy - 分段错误发生在第 453 行。
speeches[i].who = malloc(nb_of_sirs_involved * sizeof(int));
以下是作为参数传递的示例输入(使用 cat):
http://pastebin.com/YWv1F88G - 导致分段错误的那个。
http://pastebin.com/i0V7KNH3 - 不会导致分段错误的其他测试用例之一。
我不确定出了什么问题。是什么导致 malloc 失败?我确定我有足够的内存可以分配!
【问题讨论】:
-
我不认为是 malloc 失败,更可能的是(虽然我没有读过代码)
speeches[i]不存在。 -
pastebin 不是一个好主意。你应该提供一个sscce.org
-
@Navnath - 但这不会阻止段错误......
-
你应该检查 malloc() 的结果!如果你 malloc/free 许多小的和不同大小的块,你可能会比你想象的更快地耗尽内存
-
在codereview.stackexchange.com 上问这个可能更合适。无论如何,SO 不应该替换好的旧调试器。