gpt4 book ai didi

c - C 中的字符矩阵(动态分配的二维数组)

转载 作者:行者123 更新时间:2023-11-30 16:30:19 25 4
gpt4 key购买 nike

这段代码有什么问题?我正在尝试将标准输入中的 n 行放入 chars **a 矩阵中。**a 需要动态分配。

代码如下:

int main()
{

char **a=NULL;
int n;
int i=1;
int j=0;
char c;

scanf("%d",&n);
getchar();

a=malloc(n*sizeof(char*));

while(n>0)
{
while(1)
{
c=getchar();

if(c=='\n')
{
j++;
break;
}

i++;
a[j]=realloc(a,i*sizeof(char));
a[j][i-2]=c;
a[j][i-1]='\0';

}

i=1;
n--;
}


printf("%s\n",a[0]);

free(a);
}

最佳答案

替换

a[j]=realloc(a,i*sizeof(char)); 

a[j]=realloc(a[j],i*sizeof(char));

以便仅重新分配子数组之一而不是整个数组。
我建议也进行其他答案中建议的改进,以初始化子数组,这也会将第一个重新分配转换为分配。

关于c - C 中的字符矩阵(动态分配的二维数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51224727/

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