C++ 动态内存


C++ 动态内存分配是指在程序运行过程中,按照需要动态地分配内存空间的一种方式。这种方式与静态内存分配方式不同,静态内存分配是在编译阶段确定分配内存的大小和位置等信息。

在C++语言中,使用new和delete运算符来分配和释放动态内存。

  1. 分配动态内存

使用new运算符可以分配一块动态内存,并返回该内存块的地址,用指针变量保存。

例如:

int *p = new int(10); //分配一个整型变量的动态内存,并初始化为10,p保存该内存块的地址

char *q = new char[100]; //分配100个字符变量的动态内存,q保存该内存块的起始地址

  1. 释放动态内存

使用delete运算符释放动态分配的内存。

例如:

delete p; //释放p所指向的整型变量的动态内存

delete[] q; //释放q所指向的100个字符变量的动态内存

需要注意的是,使用delete释放单个动态分配的对象时,应该使用delete运算符;而释放动态分配的数组时,应该使用delete[]运算符。

另外,使用动态内存分配时需要注意以下几点:

(1)动态分配的内存要及时释放,否则会造成内存泄漏。

(2)动态分配的内存一定要在使用前初始化,否则其中的值是未知的。

(3)动态分配的内存使用完后要及时释放,否则会造成内存浪费。

(4)动态分配的内存空间是不保证连续的。

总之,使用动态内存分配可以方便地动态地调整程序内存的大小,但在使用时需要注意安全性和及时性。