52ky 发表于 2022-5-3 12:12:09

如何复制或连接两个字符*

问题
如何将 char* 连接或复制在一起?
char* totalLine;

const char* line1 = "hello";
const char* line2 = "world";

strcpy(totalLine,line1);
strcat(totalLine,line2);
此代码产生错误!

分段故障

我想我需要为toline分配内存?

另一个问题是,下面是复制内存还是复制数据?
char* totalLine;

const char* line1 = "hello";

totalLine = line1;
提前致谢! :)

回答
是的,你猜对了。 totalLine 是一个未初始化的指针,因此这些 strcpy 调用试图写入内存中的某个随机位置。

幸运的是,当您标记 C++ 时,您无需为此烦恼。只需这样做:
#include <string>

std::string line1 = "hello";
std::string line2 = "world";

std::string totalLine = line1 + line2;
不需要内存管理。

我认为您的意思是“是复制了底层字符串,还是只是一个指针?”。如果是这样,请使用指针。



页: [1]
查看完整版本: 如何复制或连接两个字符*