C++ new 的使用
2024-05-07 15:40:14
new 关键字的作用
用于动态分配内存空间的
什么时候用到new
说到这个我先大致说下,C++ 中的存储方法大致有 自动存储,静态存储,和动态存储.
静态存储:声明变量的时候前面添加static 关键字
自动存储: 这个举个例子,在一个函数A里面定义了一个变量并初始化, int a =10 ; 这个就是自动存储,
a仅当A()函数活动时存在。当成许控制权回到main()时,a使用的内存将自动被释放,
这也是为为啥自动存储不能使用new 的原因,因为内存会自动释放呢,java 里面不会释放内存,所以java 里面可以自定义变量的时候初始化,
动态存储:数据的声明周期不完全受程序或函数的生命时间控制 ,所以C++ 中有new 来分配空间,不过由于内存不会自动释放,所以使用完之后还需要使用delete 来释放内存.
C++ new 的方法:
1 单独的变量分配内存
#include <iostream>
#include <string>
using namespace std;
// 普通的指针,与new 对比
int main()
{int b = 100;int *p;p = &b;//或者// int *p =&b;cout << *p << endl;// 使用new 分配内存空间int *c = new int;*c =100;// 或者// int *c = new int(100);cout << *c << endl;// 使用delete释放内存delete p;
}
2 对象分配内存
#include <iostream>
#include <string>
using namespace std;class Anima
{
public: void a_fun(){cout << "AAAAA" << endl;}
};int main()
{//分配一个对象的空间Anima* anima = new Anima();anima->a_fun();delete anima;return 0;
}
3 与关键字operator 在一起使用,
这个自己用的比较少,一时想不到很好的demo 就不写了,目前先记住有这种使用的方法.
最新文章
- sql server T-SQL 基础
- python流程控制-Python | 流程控制
- 数学建模:1.概述 监督学习--回归分析模型
- PowerDesigner提示This data item is already used in a primary identifier.的处理
- 使用kubectl查看Kubernetes集群里的node节点信息
- linux配置usb主从_杂集:浅谈关于Mongodb数据库主从复制
- python命令行tab补全_python命令行下按tab建补全的方法
- mysql unknown column mysql.user_MYSQL创建用户Unknown column 'plugin' in 'mysql.user'的解决
- android 程序 架构,Android应用架构
- 【紫书第九章】动态规划(DP)常见模型汇总与DP问题分析方法
- php查询mysql表里的数据_PHP连接Mysql数据库读取表格数据
- JSP实用教程 第二章 JSP语法
- java 从入门到精通PDF
- cxp文件查看 欧姆龙_欧姆龙PLC CXP编程软件外文手册
- fluent-bit 本地安装及配置
- app的性能测试小工具Emmagee使用教程
- pytorch使用万能模板
- java 提高随机数效率_抢拍神器的关键:优化提升Java线程局部随机数ThreadLocalRandom高并发技巧 - alidg...
- PO(PageObject)模型
- MacTeX添加.sty文件
热门文章
- 2022-2028年中国橡胶漆产业发展动态及未来趋势预测报告
- 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
- 快速给shell脚本加上使用提示
- 简述Web程序开发流程
- Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译
- ERROR: epmd error for host 192: badarg (unknown POSIX error)
- LeetCode中等题之无重复字符的最长字串
- 高精地图与自动驾驶(下)
- 自动驾驶十字路口解决方案
- 加密算法有哪些?对称加密和非对称加密的区别?