代碼:C /用Cython:一個malloc的內存分配的初始內容
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
不會初始化爲零,如維基百科和in this thread所述。 Python/Cython/C的背後發生了什麼?