我想使用大小可以动态更改的字符串或char变量。不需要指定大小,在代码中可以添加一个单元格并在单元格中插入新的char。我使用此代码执行此操作:
char *align_A = (char*)malloc(lenMax*sizeof(char));
还有另一种方法,我不需要指定大小(在这里lenMax
),当我想要添加新的字符数组或内存时,动态添加一个单元格并插入char字符。我可以使用string
进行此操作吗?
例如:首先添加到alignA,A
字符,以便更改内存或数组的下一个字符B
大小并将B添加到...中
答案 0 :(得分:7)
由于你使用的是C ++而不是C,使用std::string
或std::vector
,它们会让你的生活变得更轻松,因为它们是专为你描述的任务而设计的。
如果您真的想坚持char *
,请检查C风格的realloc
功能。
答案 1 :(得分:0)
您可以使用std::string
push_back
方法来达到此目的。它直接在字符串的末尾附加一个新的字符。 std库本身处理内存问题
答案 2 :(得分:0)
您需要动态创建数组并从堆中获取内存。您可以使用new
命令或malloc
。
它将在堆上分配内存,但在正常定义中生成数组将使用堆栈内存。