如何复制或连接两个字符*
问题如何将 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]