你如何连接或复制 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/