(一)C++入门——指针与数组——Expression: _CrtIsValidHeapPointer(Block)
2024-09-05 08:16:16
最近在入门c++,在看《c++ Primer Plus》一书。书中P106提到,删除使用New创建的数组时,是将指针重新指到第一个元素后,再进行的删除操作。代码如下:
int *ptest = new int[3];
ptest[0]=1;
ptest[1]=2;
ptest[2]=3;
cout<<"*ptest "<<*ptest<<endl;
ptest = ptest+1;//此时指针指向第二个元素,也即:ptest[1]
cout<<"*ptest "<<*ptest<<endl; //这里输出 2
delete [] ptest; //NOT OK .若是此时进行删除分配的内存,将会报Expression: _CrtIsValidHeapPointer(Block)
delete [] (ptest-1);//OK 地址-1后,将返回第一个元素所在的地址。 或者说,delete 操作符作用于数组时,传递的参数必须是数组开始的地址。
//备注:这个报错是否说明,删除new分配的数组内存时,必须需要指针是指向第一个元素呢?
知识点:
1、使用New分配的内存空间,必须要使用delete进行回收。
最新文章
- oracle not in,not exists,minus 数据量大的时候的性能问题
- js对象/数组深度复制
- PCA and kmeans MATLAB实现
- 如何删除或重置spfile中的参数
- Vue.js简介
- 一些推荐的spark/hadoop课程
- C 语言指针怎么理解?
- Daily Scrum 11.12
- 开发ContentProvider的步骤
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
- Jetson TX2安装tensorflow(原创)
- 学习HTML的第一次课
- Mac PyCharm激活码(转载CSDN的猪哥66文章)
- Springcloud Gateway 路由管理
- :focus-within伪类选择器的3种应用
- Spring Boot统一异常处理实践
- LeetCode算法题-Maximum Depth of N-ary Tree(Java实现)
- 第二章 Android系统与嵌入式开发
- 初学web前端
- 换PHP7后访问Apache虚拟站点Forbidden的问题解决
热门文章
- 使用horovod构建分布式深度学习框架
- codeforces#1157D. Ehab and the Expected XOR Problem(构造)
- legend3---9、项目的日志以及调试信息数据量非常大
- DockerFile 简单使用
- P2602 [ZJOI2010]数字计数&;P1239 计数器&;P4999 烦人的数学作业
- Ajax案例-基于HTML,以GET或POST方式,检查注册用户名是否在数据库中已存在
- consul ocelot
- OriginPro 9.1 科研图标绘制入门
- python之scrapy爬取某集团招聘信息以及招聘详情
- an extra named object property