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