动态更改char变量的大小

时间:2013-05-06 06:52:35

标签: c++

我想使用大小可以动态更改的字符串或char变量。不需要指定大小,在代码中可以添加一个单元格并在单元格中插入新的char。我使用此代码执行此操作:
    char *align_A = (char*)malloc(lenMax*sizeof(char));
还有另一种方法,我不需要指定大小(在这里lenMax),当我想要添加新的字符数组或内存时,动态添加一个单元格并插入ch​​ar字符。我可以使用string进行此操作吗?
例如:首先添加到alignA,A字符,以便更改内存或数组的下一个字符B大小并将B添加到...中

3 个答案:

答案 0 :(得分:7)

由于你使用的是C ++而不是C,使用std::stringstd::vector,它们会让你的生活变得更轻松,因为它们是专为你描述的任务而设计的。

如果您真的想坚持char *,请检查C风格的realloc功能。

答案 1 :(得分:0)

您可以使用std::string push_back方法来达到此目的。它直接在字符串的末尾附加一个新的字符。 std库本身处理内存问题

答案 2 :(得分:0)

您需要动态创建数组并从堆中获取内存。您可以使用new命令或malloc。 它将在堆上分配内存,但在正常定义中生成数组将使用堆栈内存。