问题
如何将 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;
复制代码
不需要内存管理。
我认为您的意思是“是复制了底层字符串,还是只是一个指针?”。如果是这样,请使用指针。
|