作为这里的一个例子,我创建了一个2d数组的双倍数1000乘2并用222222.0填充2d数组中的每个点
真是奇怪的是,如果我以array[999][1000]
为例,我得到222222.0
但如果我让我的数组大小只有100比2,那么这不会发生,如果我尝试array[99][10]
,我只会得到0.0
发生了什么事?为什么我会出现这种“泄漏”?
int N = 1000;
int dimension = 2;
double** nums = malloc(sizeof(double*) * N);
for(int i = 0; i < N; i++)
nums[i] = malloc(sizeof(double) * dimension);
for (int k = 0; k < dimension; k++)
for (int i = 0; i < N; i++)
nums[i][k] = 222222;
printf("%f\n", nums[99][1000]);
222222.000000
咦?