gpt4 book ai didi

c - 这段代码中的段错误在哪里?

转载 作者:行者123 更新时间:2023-12-02 05:31:57 24 4
gpt4 key购买 nike

我认为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com