首页 > 解决方案 > 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 库的情况下处理这个问题?

标签: pythoncmodule

解决方案


推荐阅读