找回密码
 立即注册
totalLine复制char内存 | 软件设计/软件工程 2022-05-03 229 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
如何将 char* 连接或复制在一起?
  1. char* totalLine;

  2. const char* line1 = "hello";
  3. const char* line2 = "world";

  4. strcpy(totalLine,line1);
  5. strcat(totalLine,line2);
复制代码

此代码产生错误!

分段故障

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

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

  2. const char* line1 = "hello";

  3. totalLine = line1;
复制代码

提前致谢! :)

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

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

  2. std::string line1 = "hello";
  3. std::string line2 = "world";

  4. std::string totalLine = line1 + line2;
复制代码

不需要内存管理。

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





上一篇:如何从列表中的整数中删除重复的数字
下一篇:JavaScript 中的乘法表