遇见的问题:需要从python向c++函数中传入二级指针的参数
char**P的问题:
c_char_datas = (ctypes.c_char_p * file_num)() for j in range(file_num):c_char = (ctypes.c_char*6)()c_char.value = file_list[j].name.encode('utf-8')c_char_datas[j] = ctypes.c_char_p(c_char.value)
这样c_char_datas 就是P,传入函数就可以了,肯定有其他的方式可以解决,这里只记录自己使用的一种。
int**P的问题:
c_int_arrs = [] for j in range(file_num):value_num = len(file_value_arrs[j])one_int_arr = (ctypes.c_int*value_num)()for m in range(value_num):one_int_arr[m] = file_value_arrs[j][m]c_int_arrs.append(ctypes.cast(one_int_arr, ctypes.POINTER(ctypes.c_int))) p_int_arr = (ctypes.POINTER(ctypes.c_int) * file_num)(*c_int_arrs)
这个p_int_arr就是P,目前有正确结果,但是不知道还有没有其他更好的方式,记录,自用。