最近在入门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进行回收。

最新文章

  1. oracle not in,not exists,minus 数据量大的时候的性能问题
  2. js对象/数组深度复制
  3. PCA and kmeans MATLAB实现
  4. 如何删除或重置spfile中的参数
  5. Vue.js简介
  6. 一些推荐的spark/hadoop课程
  7. C 语言指针怎么理解?
  8. Daily Scrum 11.12
  9. 开发ContentProvider的步骤
  10. ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
  11. Jetson TX2安装tensorflow(原创)
  12. 学习HTML的第一次课
  13. Mac PyCharm激活码(转载CSDN的猪哥66文章)
  14. Springcloud Gateway 路由管理
  15. :focus-within伪类选择器的3种应用
  16. Spring Boot统一异常处理实践
  17. LeetCode算法题-Maximum Depth of N-ary Tree(Java实现)
  18. 第二章 Android系统与嵌入式开发
  19. 初学web前端
  20. 换PHP7后访问Apache虚拟站点Forbidden的问题解决

热门文章

  1. 使用horovod构建分布式深度学习框架
  2. codeforces#1157D. Ehab and the Expected XOR Problem(构造)
  3. legend3---9、项目的日志以及调试信息数据量非常大
  4. DockerFile 简单使用
  5. P2602 [ZJOI2010]数字计数&amp;P1239 计数器&amp;P4999 烦人的数学作业
  6. Ajax案例-基于HTML,以GET或POST方式,检查注册用户名是否在数据库中已存在
  7. consul ocelot
  8. OriginPro 9.1 科研图标绘制入门
  9. python之scrapy爬取某集团招聘信息以及招聘详情
  10. an extra named object property