动态改变char变量的大小
Dynamically change size of char variable
我想使用一个大小可以动态改变的字符串或字符变量。不需要指定大小和在代码中可以添加一个单元格和插入新的字符到单元格。我对这个动作使用以下代码:char *align_A = (char*)malloc(lenMax*sizeof(char));
是否有另一种方式,我不需要指定大小(在这里lenMax
),当我想添加新的字符到数组或内存,动态添加一个单元格,并插入字符字符。我可以使用string
进行此操作吗?
例如:首先在alignA中添加A
字符,对于下一个字符B
,内存或数组的大小发生了变化,然后将B添加到和…
由于您使用的是c++而不是C,请使用std::string
或std::vector
,它们将使您的工作更轻松,因为它们是专门为您描述的任务设计的。
如果你真的想坚持char *
,那么检查c风格的realloc
函数
您可以使用std::string
push_back
方法来实现此目的。它直接在字符串的末尾追加一个新字符。STD库自己处理内存问题
您需要动态创建数组并从堆中获取内存。可以使用new
命令或malloc
命令。它将在堆上分配内存,但在正常定义中创建数组将使用堆栈内存。
相关文章:
- 变量没有改变?通过向量的函数调用
- 在向量内更改变量的值不会改变其在向量外的值
- C++11:具有互斥锁的线程看到原子变量的值发生变化,尽管这是唯一可以改变它的代码
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 标准在哪里定义了可变变量可以改变
- C++11:可变的 lambda 似乎没有改变变量?
- printf() 似乎改变了一个变量
- 为什么我的变量在单独的线程中修改时没有改变?C++/boost
- 为什么 Player.x 和 Player.y 变量没有改变?
- C - 如何将各处的静态函数称为改变其私有变量
- 即使"friend class rect"在平方类中被评论,为什么它要改变矩形类的私有变量?
- 为什么调用 CUDA 内核函数时这个类成员变量没有改变
- 全局变量的顺序会改变C /OpenGL的性能
- 为什么一个函数的末尾有常量这个词,即使它确实改变了一个变量
- 如何在C++中改变超类和子类的变量
- 为什么变量不会改变
- 变量的范围大于for循环,为什么它不改变值
- 变量似乎在自行改变值
- 在一个case中改变switch变量
- 当赋值给变量时,数字改变值