【发布时间】:2023-01-12 17:33:00
【问题描述】:
我在调用 malloc 时遇到了一些问题。我有一个函数,它接受一个 double 和一个 struct* 然后返回一个新的 struct* 。 P_ITooTrip
在函数内部,代码挂在第 247 行(248 行不打印),稍等片刻,然后代码结束且没有错误,即使它没有完成。 line 249
我不明白的是我之前已经用不同的输入调用了这个函数并且它工作得很好。即第 107 行有效但挂在 109 上。 让事情变得更加混乱。如果我切换第 107 行和第 109 行,之前挂在第 109 行的代码现在运行正常,之前运行的代码挂起。 line 107 & 109 我只是用完了内存空间吗?如果是这样,为什么 malloc 不返回空指针而只是挂起。 非常感谢任何帮助。谢谢
【问题讨论】:
-
如果您可以在这里直接分享代码 sn-p,那么回答您的问题会更容易。
-
... 通常我们更喜欢minimal reproducible example。代码的屏幕截图特别无用,因为它不可搜索并且要重现我们将输入您的代码的问题。
-
+10 看起来很奇怪,除非该类型包含灵活的数组成员。这可能是(不相关的)堆损坏。在您的代码上运行 valgrind。