1

我有一个调用 C 函数的 python 程序。我将一些包含可变字符的结构发送给 c 函数,我的 c 函数填充了该结构。

类myS(结构): 字段= [(“x”,c_int),(“缓冲区”,100 * c_char)]

我将它发送给 C 函数,C 函数填充这个结构中的值。我的程序工作得很好,但是返回后它会抛出一个错误

* 检测到 glibc * python: free(): 下一个大小无效(快速):

程序的后续执行显示以下 3 个错误之一,代码几乎没有变化(例如 print "hi")。

* 检测到 glibc * python: malloc(): 无效的下一个大小(快速):

* 检测到 glibc * python: free(): 下一个大小无效(快速):

分段故障

请帮帮我。提前致谢。

4

1 回答 1

1

您已经破坏了内存领域,简单明了,可能是通过超出传递给 C 函数的内存的末尾进行写入,但是,如果没有看到源代码,我们将永远无法确定。

该消息仅在glib检测到内存分配记帐信息已损坏时出现。

于 2012-04-05T13:05:23.413 回答