gpt4 book ai didi

c++ - 使用指针写入 strcat() 时出错

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

我正在尝试通过 K&R 的 The C programming Language 学习 C。我正在尝试使用指针编写一个 strcat() 程序。

char *strcat (char *s, char *t){
char *d;
d = s;
while(*s++);
s--;
while(*s++ = *t++);
return d;
}

int main () {
char *name1;
char *name2;
name1 = "stack" ;
name2 = "overflow";
printf("%s %s\n", name1, name2);
printf("strcat out : %s", strcat(name1, name2));
return 0;
}

但是我得到的输出是

stack overflow
Segmentation fault

为什么它不起作用?任何人都可以在这里澄清错误..

最佳答案

因为指针是指向文字的指针,而且不仅是那些只读,所以目标不够大,无法包含这两个字符串。对于至少 string1,您可能希望使用一个至少足够大的数组来包含两个字符串(包括终止符)。喜欢:

char string1[128] = "Stack";

char string1[128];
strcpy(string1, "Stack");

关于c++ - 使用指针写入 strcat() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24939890/

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