问题遇到的现象和发生背景
为了使用 Python 调用 C++ 中写好的函数,将 C++ 函数打包成动态库文件,之后在 Python 中调用,C++ 函数中接收的参数类型存在有 unsigned char* 类型,在 Python 传入时使用 c_ubyte * 3072
代替,同时 Python 还需要获取指针被修改后的值。仅测试此部分文件,可以看到 Python 中的数组成功被 C++ 中的函数修改,但是将此部分用到 多线程程序 中,会出现段错误。是类型传递错了么。
查看 多线程程序 出错的 core 文件,发现函数在 subtype_dealloc 处出错,应该是含有调用 C++ 函数的类的实例在回收空间时出了错。
我想要达到的结果
Python程序中能够顺利回收空间,不出现 segfault,有什么好的建议么?