以数组结尾的NullcTypes

2024-05-26 02:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用ctypes在python代码中包装一个dll库。我想输入一个以NULL结尾的字符串数组。在我的python代码中,a ctype数组由

L = ['foo','bar', None] # to get a NULL terminated array
arr = (ctypes.c_char_p * 3)(*L)
lib.myfunc(None, arr)

在myfunc.c,我有

^{pr2}$

如果我运行python代码,我得到

(nil)
foo
bar
0x1eb8150    

这意味着第一个指针(None)被正确识别为空指针。但是p2指向的第三个(最后一个)项不是NULL。

在这种情况下怎么了?


Tags: to字符串代码nonefoo结尾bar数组
1条回答
网友
1楼 · 发布于 2024-05-26 02:23:06

最后一个语句打印p2本身。(指针指向指针)。在

您应该在最后一个语句之前取消对p2类语句的引用。在

printf("%p\n", (void *) *p2);

相关问题 更多 >