Я использую ctypes для доступа к функции чтения файла C в python. Поскольку прочитанные данные огромны и неизвестны по размеру, я использую **float
на Си.
int read_file(const char *file,int *n_,int *m_,float **data_) {...}
Функции mallocs
двухмерный массив, называемый data
, соответствующего размера, здесь n
и m
, и копирует значения в указанные. Смотрите следующий фрагмент:
*data_ = data;
*n_ = n;
*m_ = m;
Я получаю доступ к этой функции с помощью следующего кода Python:
p_data=POINTER(c_float)
n=c_int(0)
m=c_int(0)
filename='datasets/usps'
read_file(filename,byref(n),byref(m),byref(p_data))
После этого я пытаюсь получить доступ к p_data
, используя contents
, но получаю только одно значение с плавающей точкой.
p_data.contents
c_float(-1.0)
Мой вопрос: как мне получить доступ к data
в python?
Что вы порекомендовали? Пожалуйста, не стесняйтесь указывать, если я оставил что-то неясное!