如何在 C 中将 python 列表转换为 void 类型的指针
How to cast a python list into a pointer of type void in C
我正在尝试学习如何在 Python 中使用 ctypes,我在文档中遇到了这个示例
class Bar(Structure):
_fields_ = [("count", c_int), ("values", POINTER(c_void_p))]
bar = Bar()
bar.values = (c_void_p * 3)(1, 2, 3)
bar.count = 3
for i in range(bar.count):
print(bar.values[i])
这将打印
1
2
3
我真正想要的是将一个实际的python列表如arr = [1,2,3]
转换成上例中bar.values
的兼容类型。有什么办法可以实现这样的目标吗?
如果我没理解错的话,你想要的只是根据变量而不是硬编码数字为 values
赋值。
这样就可以了
arr = [1, 2, 3, 4]
bar = Bar()
bar.values = (c_void_p * len(arr))(*arr)
bar.count = len(arr)
我正在尝试学习如何在 Python 中使用 ctypes,我在文档中遇到了这个示例
class Bar(Structure):
_fields_ = [("count", c_int), ("values", POINTER(c_void_p))]
bar = Bar()
bar.values = (c_void_p * 3)(1, 2, 3)
bar.count = 3
for i in range(bar.count):
print(bar.values[i])
这将打印
1
2
3
我真正想要的是将一个实际的python列表如arr = [1,2,3]
转换成上例中bar.values
的兼容类型。有什么办法可以实现这样的目标吗?
如果我没理解错的话,你想要的只是根据变量而不是硬编码数字为 values
赋值。
这样就可以了
arr = [1, 2, 3, 4]
bar = Bar()
bar.values = (c_void_p * len(arr))(*arr)
bar.count = len(arr)