Получить значение указателя 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 с ним в качестве аргумента.

  • Красивый суп findAll не найти их все
  • Как загрузить определенные строки из .txt-файла в Python?
  • Получить html под тегом, используя htmlparser python
  • Не удается установить Scipy through pip
  • Настройка Python simpleHTTPserver на Windows
  • Графический график Matplotlib: незначительные галочки исчезают, когда диапазон большой
  • Django - Войти и перенаправить на страницу профиля пользователя
  • Как получить планировщик Cron в Python?
  • 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 .

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