关于ctypes释放从C中返回的内存问题

尼再采 发布于 2014/01/13 22:27
阅读 1K+
收藏 1

项目使用python开发,并且调用了C的库,其中一个接口是返回一个从C中malloc出来的内存,python中使用完了之后需要对其进行释放,但是发现两次地址不一样,无法释放,不得其解?特在此请教一下各位高手。

以下是代码截图:

python部分测试代码:

C部分测试代码:

运行 python foo.py后出现的结果,如果把C文件中foo_free部分的注释去掉,则会直接跑飞了:

另外,不知为何python中打印的text是乱码?

加载中
0
NealFeng
NealFeng
python程序和它调用的C函数是在一个进程里执行吗?如果不是,那python程序访问不了C函数的内存
NealFeng
NealFeng
回复 @尼再采 : 把restype那行注释掉,让它返回int是不是就可以了?
尼再采
是吧,(不知怎么考证),是在python中把其当作C库调用的
0
尼再采
python中打印乱码是因为把'a'写成了"a"了,C语言自从毕业后除了改jni接口没咋用过,生疏
返回顶部
顶部