創建的數組時,此中止(核心轉儲)時在Cygwin作爲<code>./test.exe</code>運行釋放用calloc
#include <stdlib.h> // test.c
int main()
{
double *arr = (double*) calloc(1000, sizeof(arr));
for (int i = 0; i < 1000; i++)
arr[i] = 1;
free(arr);
return 0;
}
編譯爲
gcc test.c -std=c99 -o test
產生輸出Aborted (core dumped)
。
當我聲明int *arr
(即使保留(double *)
強制轉換),或者當我更新arr[0]
而不是arr[i]
時,程序退出正常。是什麼賦予了?
大聲笑感謝所有downvotes。顯然我不應該在遇到愚蠢的東西時轉向SO:P – wrongusername