gpt4 book ai didi

c - 使用指针的字符串连接中的段错误

转载 作者:行者123 更新时间:2023-12-02 06:50:16 25 4
gpt4 key购买 nike

我试图连接存储在字符指针中的两个字符串,但我做错了。有人可以指出它是什么吗?另外,我没有特意使用任何内置函数。

int main()
{
char *a = "abc";
char *b = "def";
char *c;

while(*a != '\0')
{
*c = *a;
a++;
c++;
}

while(*b != '\0')
{
*c = *b;
b++;
c++;
}

*c = '\0';
c -= 6;

while(*c!= '\0')
{
printf("%c", *c);
c++;
}

return 0;

最佳答案

你还没有为c分配任何内存

bc 获取静态分配的内存,当您这样做时:

char *a = "abc";
char *b = "def";

但 c 没有,所以你需要使用类似的方法分配内存:

char *c = malloc (x);

其中 x 是您需要容纳要插入的字符的字符数组的总长度(加 1,用于终止 NULL)。您还需要记住在行的某处free ()它。

因为你没有做任何分配,这一行:

*c = *a;

会产生未定义的行为。

关于c - 使用指针的字符串连接中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46773628/

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