gpt4 book ai didi

python - 需要 ctypes char* 指针

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:49 24 4
gpt4 key购买 nike

我有一个 C 函数返回字符串 (char *),我们称它为 foo() .在 python 中,我想调用它并使用它的返回值,完成后,我想调用另一个释放字符串 foo 的 C 函数。返回。

如何同时获得指针和字符串本身?如果我这样做:

fooFunc = foolib.foo
fooFunc.restype = c_char_p
r = fooFunc()

然后我得到了字符串,但不是指针。如果我在不指定 restype 的情况下这样做,我得到一个似乎是正确地址的 int,但每当我尝试将其转换为 c_char_p(<address>) 时它因段错误而崩溃。

最佳答案

我很惊讶您不能将 c_char_p 实例传回给第二个函数,但我手头没有工具来验证它为什么会失败。

但是,作为替代方案,我相信您可以尝试:

  • restype 指定为简单指针 (c_void_p)
  • 当你想操作字符串时,使用ctypes.string_at build 它
  • 将最初返回的指针传递给释放函数。

关于python - 需要 ctypes char* 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154026/

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