C语言 分段错误(核心转储)将表单数组复制到字符串


#include <string.h>
#include <stdio.h>
int main()
{
char str[255] = "Hello;thisnewwolrd";
int i =0;
while(str[i] != ';')
{
i++;
}
i++;
char *name = NULL;
while(str[i] != NULL)
{
name[i] = str[i];
i++;
printf("%c rn",name[i]);
}
}

预期的输出是这个Newwolrd,但我收到核心转储的错误 Canany一个人有理由为什么以及如何克服这个

这应该有效:

int main()
{
char str[255] = "Hello;thisnewwolrd";
char *ptr = strchr(str, ';') + 1;
char name[255];
strcpy( name, ptr);
printf("%s rn", name);
}

您不必重新发明轮子,并且最好使用标准库函数进行字符串操作。

您必须分配内存来存储字符串副本。例如:char *name = malloc(255*sizeof(char));.

并且您必须创建另一个迭代器而不是i,才能开始填充从索引 0 开始填充name所指向的内存空间。

相关内容

  • 没有找到相关文章

最新更新