gpt4 book ai didi

python - 指向引用的指针使用 ctypes

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:42:07 25 4
gpt4 key购买 nike

我的cpp程序:test.cpp

#include <iostream>

using namespace std;

extern "C"
{
void test_2(int &e, int *&f)
{
e=10;
f=new int[e];
for(int i=0;i<e;i++)
f[i]=i;
}
}

这是我的编译命令:g++ -fPIC -shared test.cpp -o test.so我的操作系统是ubuntu 12.04 lts,我的python版本是2.7.5,python程序是这样的:

#coding=utf-8

import ctypes
from ctypes import *

if __name__ == "__main__":
lib = ctypes.CDLL("./test.so")
a = c_int()
b = c_int()
lib.test_2(
byref(a),
byref(pointer(b))
)
print a.value
print type(b)

输出为10<class 'ctypes.c_int'> , 但我想得到数字 10 和一个 int 数组,我该怎么办?

最佳答案

首先将b定义为一个指针。

#coding=utf-8

import ctypes
from ctypes import *

if __name__ == "__main__":
lib = ctypes.CDLL("./test.so")
a = c_int()
b = pointer(c_int())
lib.test_2(
byref(a),
byref(b)
)
for index in range(0,a.value):
print b[index]

关于python - 指向引用的指针使用 ctypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26841242/

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