c++ - 我的 strcpy 有什么问题?

标签 c++ strcpy

<分区>

我试着自己制作strcpy。它应该可以工作,我什至从这里发布的关于 strcpy 的人那里复制并粘贴了(几乎完全相同的代码)。两者都给我一个“段错误”。

char* strcpy(char * destination, const char * source)
{
    while( (*destination++ = *source++) != '\0' ) 
        ;
    return destination;
}

这段代码有什么问题?

char* a = "hello";
cout << strcpy(a, "Haha") << endl;

最佳答案

您正在尝试覆盖字符串文字。这会导致未定义的行为。将 a 声明为数组:

char a[] = "hello";

您的 strcpy 实现也有一个错误(假设是正常的语义)。它应该返回指向目标缓冲区的开头 的指针,而不是结尾。

关于c++ - 我的 strcpy 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16677015/

相关文章:

c - 如何在 System() 命令中使用字符串

c - printf 在 strcpy 中出现段错误后执行?

c - 大小为 1 的 Strcpy 读取无效

c++ - 访问/填充来自不同类的 vector ?

c++ - 从 string 到 char[] 的转换如何让它变长?

c++ - 我应该使用什么类型的工具来用 C 或 C++ 制作一个简单的模拟器

c - 为什么调用 strcpy() 会导致我的源字符串发生变化?

c - strcpy 的段错误

c++ - OpenCV 编译问题

c++ - 未遵循 std::function const 正确性