简介

对于普通数据类型数组 使用 delete [] pa 和 delete pa, 都不会产生内存泄露. 对于自己定义的对象数组, 会产生内存泄露.

环境

g++ , valgrind 来查看是否产生了内存泄露

参考链接

https://www.cnblogs.com/sura/archive/2012/07/03/2575448.html

code

#include <iostream>
#include <ctime>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <string>
#include <sstream>
#include <map>
#include <unordered_set>
#include <set>
#include <unordered_map>
#include <limits>
#include <stack>
#include <list>
#include <queue> using LL = long long;
using ULL = unsigned long long;
//using PII = pair<int,int>;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};
using namespace std;
// 大于等于k的最小整数 class Test{
public:
int a;
Test() {
a = 0;
}
~Test(){
cout << "~Test()" << endl;
}
}; int main() {
int *p = new int[5];
cout << sizeof(p) << endl;
delete p; int *pa = new int[5];
cout << sizeof(pa) << endl;
delete [] pa; Test *pb = new Test[5];
cout << sizeof(pb) << endl;
delete [] pb; Test *pc = new Test[5];
cout << sizeof(pc) << endl;
delete pc; // 会导致内存泄露 且出现段错误 segmentation fault (core dumped)
/*
==207912== LEAK SUMMARY:
==207912== definitely lost: 28 bytes in 1 blocks
==207912== indirectly lost: 0 bytes in 0 blocks
==207912== possibly lost: 0 bytes in 0 blocks
==207912== still reachable: 0 bytes in 0 blocks
==207912== suppressed: 0 bytes in 0 blocks
*/
return 0;
}

TIP

这里显示的sizeof都是8显示的都是指针的大小. 因为是64位系统, 使int达到了8个字节的长度.

C++ delete [] 与 delete的更多相关文章

  1. 【转】 C++中delete和delete[]的区别

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete ...

  2. C++:delete和delete[]释放内存的区别

      C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[].  关于 new[] 和 delete[], ...

  3. C++中delete和delete[]的区别

    C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]. 关于 new[] 和 delete[],其中又 ...

  4. 关于delete和delete[]

    [精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.html C++告诉我们在回收用 new 分配的单个对象的内存空间的 ...

  5. svn local delete, incoming delete upon update 解决办法

    经常有人会说,树冲突是很难解决的一类冲突,其实一旦了解了其原理,要解决也不难.先回顾下对于树冲突的定义.     树冲突:当一名开发人员移动.重命名.删除一个文件或文件夹,而另一名开发人员也对它们进行 ...

  6. C++中delete 和delete[]的区别

    c++告诉我们在回收new分配的单个对象的内存空间的时候用delete,   回收new[ ]分配的一组对象的内存空间的时候用 delete[ ]; #include <iostream> ...

  7. C++ delete 和 delete []

    C++ delete 和 delete [] 简单结论: new delete new [] delete []   文章 : 对 delete [] 的声明 void operator delete ...

  8. 为什么new的普通数组用delete 和 delete[]都能正确释放

    由同事推荐的一篇博客: 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader 文章解释了delete 内 ...

  9. C++ 中 delete 和 delete[] 的区别

    一直对 C++ 中 delete 和 delete[] 的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++ 告诉我们在回收用 new 分配的单个对象的内存空间时用 de ...

  10. svn conflicts: local delete, incoming delete upon update

    svn  st查看更新的时候发现存在conflicts,提示很多 local delete, incoming delete upon update , $:svn st ? C IMIRROR.T3 ...

随机推荐

  1. AOP流程及原理

    目录 一.AOP结构介绍 @Pointcut 通知 原理 连接点 拦截器 二.Bean介入点 EnableAspectJAutoProxy AspectJAutoProxyRegistrar Anno ...

  2. zabbix 之安装采坑记

    很久没有安装过zabbix,理论上应该是很简单,但是还是遇到好几个小问题,导致浪费了两个小时时间了要,特此记录一下 如果没有研发源码的能力,建议选择LTS版本 zabbix 4.0 官方安装文档: h ...

  3. thinkphp里__PUBLIC__的使用

    1.默认值 __PUBLIC__常量默认指向当前项目根目录下的pulic目录, 例如:www下有一个blog项目目录,blog下一般有application.Home.public.Thinkphp ...

  4. DevEco Studio AI辅助开发工具两大升级功能 鸿蒙应用开发效率再提升

    随着搭载HarmonyOS 5的Pura X发布,鸿蒙生态进入快车道,各应用正在加速适配开发,越来越多开发者加入到鸿蒙应用开发浪潮中.为提升鸿蒙应用开发效率,华为前不久上线了首款开发HarmonyOS ...

  5. 【深度学习基础】:VGG实战篇(图像风格迁移)

    目录 前言 style transfer原理 原理解析 损失函数 style transfer代码 效果图 fast style transfer 代码 效果图 前言 本篇来带大家看看VGG的实战篇, ...

  6. 线程安全集合 --- Concurrent

    引言 最近看一些代码的时候,发现有人用 System.Collections.Concurrent 下的 BlockingCollection 很便利的实现了生产者 - 消费者模式,这是之前没有注意到 ...

  7. FastAPI-请求参数与验证

    最近想搞一下接口, 希望能简单上手, 前后端分离, 大致看了一遍 SpringBoot, Gin, NodeJs, Flask, Django, FastAPI 等, 感觉还是用 Python 语言来 ...

  8. Java Solon v3.3.0 发布(国产优秀应用开发基座)

    Solon 框架! Solon 是新一代,Java 企业级应用开发框架.从零开始构建(No Java-EE),有灵活的接口规范与开放生态.采用商用友好的 Apache 2.0 开源协议,是" ...

  9. Django中图片不显示

    很多教程没教对,导致Django中的图片不能正确的显示出来,经过多次踩坑,发现如下方法可以解决该问题. 1.setting.py中添加: STATIC_URL = '/static/' STATICF ...

  10. Django中的Ajax表单提交与文件上传

    Django中Ajax表单提交 Ajax是以一种与服务器交换数据的技术,可以在不重载整个页面的情况下更新网页的一部分.它也可以运用在Django项目的表单中,与普通的views函数不一样的是:表单所在 ...