gpt4 book ai didi

python - ctypes 数组中元素上的 Ctypes 指针

转载 作者:行者123 更新时间:2023-11-30 22:12:03 35 4
gpt4 key购买 nike

有没有办法获取指向 ctypes 数组中间元素的指针?示例:

lib = ctypes.cdll.LoadLibrary('./lib.so')
arr = (ctypes.c_int32 * 100)()
lib.foo(arr)

现在我不想使用指向 arr 第一个元素的指针来调用 foo,而是调用第 10 个元素。这相当于 C 表示法 &arr[9]:

lib.foo(&arr[9])

有什么聪明的方法可以做到这一点吗?

最佳答案

byref 有一个可选参数,用于向地址添加字节偏移量。

test.dll (Windows)

__declspec(dllexport) int foo(int* arr)
{
return *arr;
}

示例:

>>> from ctypes import *
>>> lib = CDLL('test')
>>> arr = (c_int * 100)(*range(100))
>>> arr[9]
9
>>> lib.foo(arr)
0
>>> lib.foo(byref(arr,sizeof(c_int) * 9))
9

关于python - ctypes 数组中元素上的 Ctypes 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51240480/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com