gpt4 book ai didi

c - 字符串复制中的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:04:21 26 4
gpt4 key购买 nike

我收到内部 while 循环的段错误。

char **c;
c=(char **)malloc(3*(N-1)*sizeof(char *));

for(int i=0;i<3*(N-1);)
{
char *temp;
gets(temp);
while(*temp!='$')
{
j=0;
while(*temp!=' ')
{
*(c[i]+j)=*(temp+j);
j++;
}
i++;
}
i++;
}

抱歉缩进不当。我知道操作 char * 字符串会导致错误。但我不确定这个错误。我试图将 tmp 字符串分成三个不同的字符串。

最佳答案

您只为 3 * (N - 1) 字符串指针分配空间,而没有为字符本身分配空间。 temp 指针也未初始化,但您仍在使用 gets() 对其进行写入。这会导致未定义的行为。

还有,你shouldn't cast the return value of malloc() , 在 C 中。

关于c - 字符串复制中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13228395/

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