2013-05-06 35 views
0

我想要使用字符串或字符变量的大小可以动态更改。不需要指定大小,并且在代码中可以添加一个单元格并将新的字符插入到单元格中。我使用此代码进行此操作:
char *align_A = (char*)malloc(lenMax*sizeof(char));
是否有另一种方法,我不需要指定大小(在此为lenMax),以及何时需要向数组或内存中添加新的字符,动态添加单元格并插入字符字符成。我可以使用string进行此操作吗?
例如:先添加到alignA,A字符,一个字符B大小的内存或磁盘阵列改变,并添加B插入和...动态更改字符变量的大小

回答

7

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

如果您确实想坚持char *,那么请检查C风格的realloc函数。

0

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

0

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