Вдохновленный другим answer здесь, у меня есть функция ctypes, которую я вызываю, используя ctypeslib.ndpointer
:
lib.foo.argtypes = [ctypeslib.ndpointer(np.complex64, ndim=1, flags='C'), POINTER(c_int)]
Внешняя функция объявляется следующим образом:
void foo(cmplx_float *array, int *length)
Моя проблема в том, что я хочу дважды вызвать эту функцию. В первый раз я хочу передать nullptr
в аргумент array
, чтобы я мог узнать нужную длину. Затем во второй раз я перейду в массив numpy.
Итак, я делаю так вот так:
lib.foo(None, length)
Это не выполняется со следующей ошибкой:
ctypes.ArgumentError: аргумент 1:: аргумент должен быть ndarray
Можно ли передать nullptr
?