C++动态内存分配
来源:互联网 发布:win10 软件消失了 编辑:程序博客网 时间:2024/05/18 15:52
C++中将堆称为空闲存储器。
为了实现动态的内存分配,会用到最重要的两个操作符:new 和 delete
例1:为了给一个int类型的变量分配内存,先声明一个int类型的指针然后再使用new操作符给这个变量分配与类型相符合的内存。变量使用完成后要销毁变量,使用delete操作符。
int* Var{nullptr};Var = new int;/*对变量的操作,省略*/delete Var;/*释放Var的内存*/Var = nullptr;/*删除后置NULL*/
上面的操作还存在其它的语法:
int* Var{new int};/*操作,省略*/delete Var;Var = nullptr;
例2:给一个char类型的数组动态分配32个字节大小的内存。
char* Str{nullptr};Str = new char[32];/*对数组的操作,省略*/delete [] Str;/*释放Str的内存*/Str = nullptr;/*删除后置NULL*/
类似的语法:
char* Str{new char[32]};/*操作,省略*/delete Str;Str = nullptr;
例3:多维动态数组分配
char Strs{new char[8][16]};double Dflt{new double[32][64]};auto Atallc = new int[4][8][16];/*等等,还有很多写法*//*多维数组的删除与一维的删除方式一样,同样使用delete [] name;*/
C++语言的语法是很灵活的。同样完成上面的操作还有许多写法,但是为了有养成良好的习惯,还是应该分步骤进行。
规律总结:分配内存的时候new操作符后面接要分配内存的变量类型,应该与指针的类型相匹配。当给数组分配内存的时候直接在此处的变量类型后面加方括号,里面写上分配的数目即可。注意多维数组仅限于用变量指定最左边那一维,例如:new int[var][4][4];
注意事项:程序结束时系统将释放空闲存储器中分配的内存,但一定要养成使用完内存后释放的习惯。否则容易造成内存泄漏,并且释放后需要将变量指针置为NULL.
0 0
- c 动态内存分配
- c动态内存分配
- C动态内存分配
- 【C++】动态内存分配
- C动态内存分配
- C动态内存分配
- C动态内存分配
- C---动态内存分配
- C语言动态内存分配
- C中的动态内存分配
- C++/CLI 动态内存分配
- 【C基础】动态内存分配
- C语言动态内存分配
- C语言动态内存分配
- 动态内存分配(C++)
- C语言 动态内存分配
- C语言动态内存分配
- c语言:动态内存分配
- 优先队列——斐波那契堆(without source code)
- WEB前端(HTML、XML、CSS、JS)学习笔记
- JCenter下载太慢问题的结局办法
- 计算广告小窥[上]您好,了解一下
- Android开发Tips(3)
- C++动态内存分配
- 数据归一化的两种方法
- Linux 之 shell 比较运算符
- 【设计模式】代理模式
- 【C++】函数的嵌套调用和递归调用
- Spring学习笔记(2)之Spring AOP
- 为什么要使用svn
- Struts2学习笔记
- 链表基本操作