python - Python to c return free(): 无效指针
问题描述
我有一个与 c 库接口的 Python 模块。在其中一种方法中,将指向具有特定大小的字节数组的指针作为参数发送给方法,在该方法中,该指针被替换为指向新的更大数组的指针,并释放旧数组。问题是当例程结束时python仍然试图释放旧数据
free(): invalid pointer
发送到该方法的指针设置为这样
e.sizedata = 4
p = (c_ubyte*4)()
p[0] = 0x80
p[1] = 0x02
p[2] = 0x1B
p[3] = 0x22
e.pdata = cast(p, POINTER(c_ubyte))
有没有办法在不改变 c 库的情况下处理这个问题?
解决方案
推荐阅读
- angular - 我必须使用 ngif 完成一项强制性检查,但我还有一个输入值要检查,具体取决于它是否存在
- android - 如何检查或查找任何 android 应用程序嵌入网站
- reactjs - 如何修复 React 中的“未捕获错误:找不到模块“./routes”?
- ios - 如何在 ios swift 基础应用程序中管理内存?
- git - 如何从 GitHub API 只获取 15 个存储库?
- css - 如何将高斯模糊 PSD 转换为 css3?
- c# - 动态地将新文本框添加到表单时如何摆脱“在窗口错误上创建句柄”
- scala - 给定文件路径,使用 Scala 找到文件扩展名?
- android - 如何在后台执行 API 调用?
- android - IOS Swift 中的应用程序类