我有一个 c++ 函数,它接受一个指向已知大小数组的指针作为输入,并返回一个大小数组,该数组的大小在函数完成数据处理之前无法确定。如何调用 c++ 函数,传递第一个数组并将结果作为第二个数组接收?
我目前正在做类似的事情:
PYTHON:
def callout(largeListUlonglongs):
cFunc = PyDLL("./cFunction.dll").processNumbers
arrayOfNums = c_ulonglong * len(largeListUlonglongs)
numsArray = arrayOfNums()
for x in xrange(len(largeListUlonglongs)):
numsArray[x] = long(largeListUlonglongs[x])
cFunc.restype = POINTER(c_ulonglong * len(largeListUlonglongs))
returnArray = cFunc(byref(numsArray)).contents
return returnArray
只要 returnArray 的大小与 numsArray 相同,此方法就可以工作。如果它更小,则数组的空元素用 0 填充。如果返回的数组大于数组元素填充后的结果将被截断。
如果有帮助,返回数组的结构包含返回数组的大小作为其第一个元素。
我在这里先向您的帮助表示感谢...