在Linux系统上,拥有16GB的内存,为什么会出现以下段错误(segfault):
根据GDB,问题出在c[N/2] = 1这里,但是原因是什么呢?
#include <stdlib.h>
#define N 44000
int main(void) {
long width = N*2 - 1;
int * c = (int *) calloc(width*N, sizeof(int));
c[N/2] = 1;
return 0;
}
根据GDB,问题出在c[N/2] = 1这里,但是原因是什么呢?
sizeof(long)
,它是多少? - Pavel Minaev