我认为 malloc 分配错误,为什么?
int ** array;
int i,j;
array=malloc(10*sizeof(int *));
for(i=0; i<10; i++)
for (j=0;j<10; j++)
array[i][j]=i*j;
最佳答案
您有一个二维数组,因此您需要分配足够的空间来容纳 100 个元素。或者,您需要在将内容放入该行之前分配每一列(每行)。如果数组是锯齿状数组,每行具有不同数量的元素,我只会执行后者。
array=malloc(100*sizeof(int));
for(i=0; i<10; i++)
for (j=0;j<10; j++)
array[i*10+j]=i*j;
或
array=malloc(10*sizeof(int *)); // rows
for(i=0; i<10; i++) {
array[i] = malloc(10*sizeof(int)); // columns
for (j=0;j<10; j++)
array[i][j]=i*j;
}
关于c - 这段代码中的段错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4043749/