gpt4 book ai didi

c++ - 在 C++ 中使用指针复制字符串,在复制过程中程序崩溃

转载 作者:行者123 更新时间:2023-11-30 02:35:19 24 4
gpt4 key购买 nike

我在使用指针将一个字符串复制到另一个字符串时遇到错误。

#include<iostream>
#include<string>
using namespace std;
void String_copy(char* scr,char* des)
{
while(*scr!='\0')
{

*des= *scr;
scr++;
des++;

}

}
int main()
{
char *str1, *str2;
str1="bharath";
str2="ygftygyfrgtg";
String_copy(str1,str2);
cout<<str1<<endl;
cout<<str2<<endl;
system("pause");
return 0;

}

最佳答案

在下面的代码中你有未定义的行为:

char *str1, *str2;
str1="bharath";
str2="ygftygyfrgtg";

你应该只将字符串文字分配给const* char,这也意味着你不应该修改 str 和 str2

您可以通过以下方式解决上述问题:

char str1[] = "bharath";
char str2[] = "ygftygyfrgtg";

但您还必须修复 String_copy - 以便它检查正在修改的数组的边界,即。添加最大长度为 des 的附加参数,也不要忘记在末尾添加 '\0`。

关于c++ - 在 C++ 中使用指针复制字符串,在复制过程中程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33763243/

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