你如何连接或复制 char* 在一起?

char* totalLine;

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

strcpy(totalLine,line1);
strcat(totalLine,line2);

此代码产生错误!
segmentation fault

我猜我需要为 totalLine 分配内存吗?

另一个问题是,下面是复制内存还是复制数据?
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;

无需内存管理。



我想你的意思是“是底层的字符串被复制了,还是只是指针?”。如果是这样,那么只是指针。

关于c++ - 如何复制或连接两个字符*,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10609326/

10-13 02:41