分配给在数组边界之外找到的数组的特定值?

时间:2017-02-18 18:26:23

标签: c arrays pointers malloc

作为这里的一个例子,我创建了一个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

咦?

0 个答案:

没有答案