python使用结构体传递参数,结构体数据被改变后如何读取?

我在python的代码中初始化结构体类的参数为0

class tagEkdExpInfo(Structure):
    _fields_ = (
        ('prekpts', (c_int*24)),
        ('roateangle', c_float),
        ('kptconf', (c_float*24))
    )
expinif = tagEkdExpInfo(prekpts=(c_int*24)(),roateangle = c_float(),kptconf = (c_float*24)())

将他传递给c++动态库,在c++程序中会对其中的值进行处理

ret =libraryProcess(image,nimw,nimh,box,expinif,eyekpt)

在其中会有赋值,返回值是一个错误码,处理成功为0。

然后我在python中后续想要使用处理后的值“prekpts”,但是这样直接调用的话结果全是0

  print(list(expinif.prekpts))

我该怎样才能调到这个被更改后的数据呢?

ret =libraryProcess(image,nimw,nimh,box,expinif,eyekpt) 这条语句后面直接访问就可以了,

用的是ctypes库吧?libraryProcess的函数原型是什么?看你的调用方法expinif不是指针型的,将拿不到libraryProcess内部修改的expinif值,参考c的调用方法是一个道理。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632