Pisałem kod, aby zapisać (potencjalnie) bardzo dużą liczbę całkowitą w tablicy chars
, do której odwołuje się wskaźnik. Mój kod wygląda następująco:Wskaźniki i "Przechowywanie niebezpiecznej pochodnej C tymczasowego odwołania do Pythona"
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
Kiedy próbowałem kompilacji kodu, mam błędzie „Przechowywanie niebezpieczną pochodną C czasowego odniesienia Pythona” w komentowanej linii. Moje pytanie brzmi: który tymczasowy odnośnik Pythona czerpię z C i przechowywania, i jak mogę to naprawić?