Создать массив из существующего ctypes.c_void_p - PullRequest
0 голосов
/ 25 сентября 2018

Я хотел бы создать массив numpy.darray точно в том месте, на которое указывает указатель ctypes.c_void_p.

buffer_ = ctypes.c_void_p()
# magically let the API point it to a special memory location
numpy_buffer_ = numpy.ndarray(shape, dtype=dtype, buffer=buffer_)

Однако я получаю сообщение об ошибке:

TypeError: buffer is too small for requested array

Я получил общую идею решить эту проблему следующим образом из другого потока , где он используется немного по-другому:

numpy.ndarray(shape, dtype=dtype, buffer=c_void_p.from_address(address))

Однако, поскольку у меня уже есть c_void_p, указывающий направильный адрес, я надеялся, что смогу его использовать.

Есть идеи, почему мой буфер выглядит слишком маленьким?(Это также не работает, если я добавлю крошечную фигуру к своему ndarray)

Best,

gbrown

...