在分配的内存中添加文本

adding text in memory allocated

本文关键字:添加 文本 内存 分配      更新时间:2023-10-16

我已经创建了一定数量的内存

char* str;
str = char(char*) malloc(15);

当我做这个

memcpy(str, "AB", 2);
memcpy(str, "CDEFG", 5)
cout<<"Value of str: "<<str<<endl;

的输出是value of value of str: DEFGH我看到的是它覆盖了之前的内存我如何继续向STR添加文本,以便每次添加文本时,它会添加到以前的STR值,而不是覆盖以前的值,并从start

开始

您使用std::string:

#include <string>
#include <iostream>
int main()
{
  std::string str = "AB";
  str+= "CDEFG";
  std::cout << str << "n";
}

使用strcat而不是memcpy

Or use ' memcpy(str +2, "CDEFG", 5);

[当你打印值时删除+1,因为它肯定应该打印CDEFG,而不是DEFGH -这显然是你的cout流处理中的一个bug…]

记录你写了多少个字符并调整你的指针。在您的示例中:

memcpy(str, "AB", 2);
memcpy(str+2, "CDEFG", 5)

除此之外,您的字符串将不会以NULL结束。对于最后一次复制,还需要一个额外的字符来复制''。要么使用strcpy,要么最好使用std::string:

#include <string>
int main()
{
  std::string s = "AB";
  s += "CDEFG";
}