Код:
cpdef values(int n):
cdef size_t i
cdef double * v = <double *> malloc(sizeof(double) * n)
if v is NULL:
abort()
for i in range(n):
print v[i]
Вывод:
>>> values(5)
1.06816855917e-306
0.0
0.0
0.0
0.0
Вопрос:
Почему эта функция печатает нули и откуда берется начальное число / что оно означает? Я думал, что в отличие от calloc
, malloc
не инициализируется нулем, как сказано в википедии и в этой теме. Что здесь происходит за кулисами Python/Cython/C?