Я писал код для хранения (потенциально) очень большого целочисленного значения в массиве chars
, на который ссылается указатель. Мой код выглядит следующим образом:Указатели и «Сохранение небезопасной производной C от временной ссылки на Python»
cdef class Variable:
cdef unsigned int Length
cdef char * Array
def __cinit__(self, var, length):
self.Length = length
self.Array = <char *>malloc(self.Length * sizeof(char)) # Error
for i in range(self.Length):
self.Array[i] = <char>(var >> (8 * i))
def __dealloc__(self):
self.Array = NULL
Когда я пытался компилировать код, я получил ошибку «Сохранение небезопасных производной C референции временного Python» в комментировал линии. Мой вопрос таков: какую временную ссылку на Python я получаю на C и храня, и как ее исправить?