// Header
#define MAX_PARAM_NAME 10
int foo(..., char **ParNameList, ...);
// Main
char *ParNameList = (char *)NULL;
ret = foo(..., &ParNameList,...);
par = (char (*)[MAX_PARAM_NAME])ParNameList;
在ctypes中应该如何处理?
有问题的部分是,在函数声明中foo(..., char **ParNameList, ...);
应该是char **
,但实际上在函数调用中给出了对{
到目前为止,我已经:
^{pr2}$这给了我一个垃圾字符串,其中我看到所需的输出与随机变化的RAM位交织在一起。
但是在ctypes中(char (*)[MAX_PARAM_NAME])
的演员是如何工作的呢?
如果有更直截了当的方法,我会很高兴听到的。
这里有pythonic的解决方法,我想分享一下完整性,虽然不好,但它很有效。在
还是想知道,最好的办法是什么
您需要使用
byref
传递c_char
指针的地址:之后你可能需要释放内存。在
相关问题 更多 >
编程相关推荐