遇见的问题:需要从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,目前有正确结果,但是不知道还有没有其他更好的方式,记录,自用。