在Python中创建指向2D字符数组的指针

2024-09-20 22:56:59 发布

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

我有一些用python编写的C代码。作为这段代码的一部分,它生成一个指向2D字符数组(较大表中的字符串对)的指针

我想要一种在python中生成兼容表并将指针传递到C的方法。该点需要是LP_LP_char_p类型,并且需要能够被引用为ptr[2][1]或类似的类型


1条回答
网友
1楼 · 发布于 2024-09-20 22:56:59

我创建了一些有效的代码,因此我将其发布在这里:

从ctypes导入指针、指针、字符、字符、地址

rows = 13
cols = 2
line_len = 12
type_char_p = POINTER(c_char_p)
type_char_pp = POINTER(POINTER(c_char_p))

char_p_array = ((c_char_p * cols) * rows)()
char_pp_array = (type_char_p * rows)()

for i in range(rows):
    for j in range(cols):
        char_p_array[i][j] = f'msg {i} {j}'.encode('raw_unicode_escape')
    char_pp_array[i] = char_p_array[i]
    
p = cast(char_pp_array, type_char_pp)

In:     p
Out:    <__main__.LP_LP_c_char_p at 0x28acdb477c8>

In:     p.contents.contents.value
Out:    b'msg 0 0'

In:     p[0][0]
Out:    b'msg 0 0'

In:     p[1][1]
Out:    b'msg 1 1'

相关问题 更多 >

    热门问题