gpt4 book ai didi

c - 通过二维指针数组循环的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:55 24 4
gpt4 key购买 nike

当我遍历这个二维指针数组时出现段错误

声明:

char **addr;

addr=malloc((y)*sizeof(char)); //y is 3
for(i=0;i<y;i++)
{
*(addr+i)=malloc(x*sizeof(char)); //x is 100
}

独立访问作品:

*(*(addr+2)+0)='a';
printf("%c\n",*(*(addr+2)+0));

无论 y 和 x 是什么,循环都会在 addr[2][0] 处返回一个段错误

for(j=0;j<x;j++)
{
for(i=0;i<y;i++)
{
printf("%d %d\n",j,i);
*(*(addr+j)+i)='a';
}
}

最佳答案

addr=malloc((y)*sizeof(char));

必须替换为

addr = malloc(y * sizeof(char *)); 

关于c - 通过二维指针数组循环的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19749227/

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