【发布时间】:2021-06-29 08:07:21
【问题描述】:
假设我想使用 ctypes 从 Python 将指向 int 的指针传递给 C 函数:
from ctypes import *
lib = CDLL("./myLib.so")
i = c_int(50)
pi = pointer(i)
lib.myfunc(pi)
这段代码没有问题。但假设我这样做:
from ctypes import *
lib = CDLL("./myLib.so")
pi = pointer(c_int(50))
lib.myfunc(pi)
垃圾收集器会发生什么?在第一个示例中,指向的内容是通过 i 变量引用的。但我不确定他们是否在第二个。没有引用这些内容的变量。可以垃圾回收吗?还是指针指向它的唯一事实使内容安全分配?
【问题讨论】: