python定义⼀个字符串数组赋值_Pythonctypes:传递⼀个字
符串数组
我在
Python 2.7中有⼀个字符串数组,我想通过ctypes传递给C函数:
unsigned int SetParams(unsigned int count, const char **params)
所以我可以在python中定义参数:
import ctypes as ct
lib = ct.cdll.LoadLibrary('...')
stype = ct.c_uint
lib.SetParams.argtypes = [ct.c_uint, ct.POINTER(ct.c_char_p)]
但是现在当我在Python函数中给出⼀组参数时,我想在上⾯的库调⽤中使⽤它,我该如何实际调⽤它?我在想这样的事情:
def setParameters(strParamList):
numParams = len(strParamList)
strArrayType = ct.c_char_p * numParams
strArray = strArrayType()
for i, param in enumerate(strParamList):
python 定义数组strArray[i] = param
lib.SetParams(numParams, strArray)
我刚开始使⽤ctypes并想知道是否有更⾃动化的⽅法来执⾏此操作?赋值strArray [i] = param实际上是重新分配的吗?如果是这样,这似乎相当昂贵 – 有没有办法这样做只是将字符串指针指向Python分配的缓冲区,或者它们不是以NULL结尾?
更新我确实查看了⼏个相关的问题,但不到直接处理相同问题的问题.⾮常感谢你
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论