问题原因:
当python调用了C函数后,在C函数中你可能会释放malloc的内存,那么你需要确保这些内存没有任何其他引用--其中包括
python中的变量引用。否则,在python变量destroy时,就会报上述错误!!!
例如,C函数:
char* p;
char* allocate() {
p = asprintf("hello world");
return(p)
}
void freep() {
free(p);
}
Python函数:
allocate = clib.allocate
allocate.restype = c_char_p()
p = allocate()
print p
# This is the key:
del(p)
clib.freep()
解决方法:
1、先销毁所有python中的变量引用,然后free C中内存。