[C++] new和delete运算符使用方法
2024-10-20 03:18:51
new 和 delete 是C++语言中的两个运算符,配套使用。
new:用于分配内存,与C语言中的 malloc 相同,分配在堆内存
delete:用于释放内存,与C语言中的 free 相同,释放堆内存
new 使用格式:
// 分配时不初始化
类型 *p = new 类型;
// 分配时初始化
类型 *p = new 类型(初始值);
// 分配数组不初始化
类型 *p = new 类型[长度];
// 分配数组时初始化
类型 *p = new 类型[长度]{值1, 值2, ...};
举例:
#include <iostream> using namespace std; int main(void)
{
// 分配时不初始化
int *p0 = new int;
*p0 = ;
cout << *p0 << endl; // 分配时初始化
char *p1 = new char('A');
cout << *p1 << endl; // 分配数组不初始化
int *p2 = new int[];
*p2 = ;
*(p2 + ) = ;
cout << *p2 << endl;
cout << *(p2 + ) << endl; // 分配数组时初始化
char *p3 = new char[]{ 'B', 'C' };
for (int i = ; i < ; i++)
{
cout << p3[i] << endl;
} return ;
}
执行结果:
delete 使用格式:
// 释放变量地址空间
delete 变量指针
// 释放数组
delete []数组指针
举例:
#include <iostream> using namespace std; int main(void)
{
int *p0 = new int();
cout << *p0 << endl; // 释放变量p0
delete p0; char *p1 = new char[]{ 'B', 'C' };
for (int i = ; i < ; i++)
cout << p1[i] << endl; // 释放数组p1
delete[]p1; return ;
}
最新文章
- 30个你必须记住的CSS选择符
- Pylot压力测试(linux)
- PYTHON第二天
- javax.servlet.ServletException: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z
- git提交报异常,fatal: The remote end hung up unexpectedly
- 属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- Ubuntu 下的环境变量配置
- svn文件回滚到某个历史版本号
- CF 1060E. Sergey and Subway
- IOS内存管理详解
- eslint 入门学习
- 操作系统->;数组越界(待完善)
- oracle 之 定时任务,存储过程和游标等语法案例
- STM32烧录的常用方式
- go语言之进阶篇有缓冲channel
- Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建
- (三)HtmlUnit 实践
- uva11795
- Median of Two Sorted Arrays——算法课上经典的二分和分治算法
- java中常见的math方法
热门文章
- 用vue-cli搭建vue项目
- 全选全不选案例table表格
- springboot使用RestHighLevelClient7简单操作ElasticSearch7增删查改/索引创建
- iOS中copy和strong修饰符的区别
- Linux安装和配置MySQL5.7【修改密码、修改字符集等配置】(5.7.18+版本也可参考,我是5.7.22)
- mybatis添加sql打印功能
- 【Flask】 python学习第一章 - 6.0 WTF表单 数据库 蓝图
- Linux之RHEL7root密码破解(一)
- python+BeautifulSoup+多进程爬取糗事百科图片
- python通过json读写序列类型的数据文件