Получить значение указателя Cython

Я пишу функцию, которая создает массив malloc'd unsigned char * , а затем перенастраивает указатель. В чистом Китоне или С это легко. Все, что вам нужно сделать, это установить тип возвращаемого значения в функцию и вернуть указатель на массив. Готово. Тем не менее, я достиг точки, в которой мне нужно вернуть указатель на массив, созданный в Cython, на Python. Я знаю, что указатель – это просто адрес памяти. Есть ли способ, которым я могу вернуть указатель Cython на Python в качестве объекта python (например, int или hex, потому что адрес памяти по существу является числом), поэтому я могу тогда в основном управлять указателями на python?

Я попытался вернуть значение указателя следующим образом:

 cdef unsigned char array[8] def return_pointer(): return &array 

Это, конечно, не работает, потому что невозможно выполнить преобразование. Cython жалуется на Cannot convert 'unsigned char (*)[8]' to Python object . Какие-либо предложения?

РЕДАКТИРОВАТЬ:

Мне не нужно получать доступ к значению в адресе памяти, на который указывает указатель в Python, только передайте указатель. Затем я планирую использовать указатель на объект Python и вызывать функции c с ним в качестве аргумента.

One Solution collect form web for “Получить значение указателя Cython”

Вы можете указать указатель на соответствующий тип C, который затем должен быть преобразован в целое число Python Cython. Правильный тип C – uintptr_t из <stddef.h> который в Cython будет доступен через from libc.stdint cimport uintptr_t . Разумеется, <uintptr_t>array_or_pointer написан <uintptr_t>array_or_pointer .

  • Почему не компилировать cython логику или выражение `||`?
  • Я не могу заставить __dealloc__ вызываться при удалении объекта
  • wrapping struct с вложенным перечислением - ссылка в векторном шаблоне
  • Обтекание std :: array в Cython и отображение его в представлениях памяти
  • Использование setuptools для создания пакета cython, вызывающего внешнюю библиотеку C
  • Альтернативы сплавленного типа в цитоне
  • Объявление массива numpy и c-указателя в cython
  • Не удалось скомпилировать созданный cython файл .c
  • Обзор памяти Cython в Windows
  • Как называть время с time.h с Cython?
  • Метод оптимизации точки - круг
  •  
    Interesting Posts for Van-Lav

    pycharm не может завершить настройку удаленного интерпретатора для Docker

    используйте таблицу стилей css на шаблоне jinja2

    Группировать по часам в SQLAlchemy?

    Преобразование 12-часового формата времени в формат времени 24 часа (сохранение записи дня) в python

    Linux: Pipe в скрипт Python (ncurses), stdin и termios

    Скрипт Python не запускается через CGI на Apache2

    Qt Stylesheets – как удалить мертвое пространство

    Как использовать Tkinter в Python для создания текста, завернутого в строку, который заполняет ширину окна?

    matplotlib, может строить, но не разбрасывать

    Как лучше всего делиться статическими данными между ipyparallel client и удаленными механизмами?

    Apache Spark: как использовать pyspark с Python 3

    Может ли пользовательский валидатор настраивать поле необязательно?

    Zen of Python: Ошибки никогда не должны проходить молча. Почему zip работает так, как он делает?

    Преобразовать шестизначную строку UUID с 32 символами в короткий идентификатор «YouTube» и обратно

    Как установить english.pickle для nltk на автономной машине Linux

    Python - лучший язык программирования в мире.