简介

对于普通数据类型数组 使用 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. 华为od机考2025A卷真题 -查找接口成功率最优时间段

    题目描述与示例 题目描述 服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为 0~100 的整数,给定一 ...

  2. JVM 方法区是否会出现内存溢出?

    JVM 方法区是否会出现内存溢出? 方法区内存溢出的可能性 方法区是 JVM 内存中的一个重要组成部分,存储类的元信息.静态变量和运行时常量池等.尽管它是一个独立的内存区域,但如果内存使用过多,也可能 ...

  3. Wireshark 的抓包和分析,看这篇就够了!

    原文:Wireshark 的抓包和分析,看这篇就够了!

  4. C#网络编程(一)----DNS/TCP/UDP协议

    简介 计算机网络是指将分布在不同地理位置的计算机系统.设备通过通信线路和设备连接起来,遵循共同的通信协议,以实现 数据传输.资源共享.协同工作 的系统 .它是现代信息技术的核心基础设施,支撑着互联网. ...

  5. mysql设置时区

    参考:https://blog.csdn.net/vkingnew/article/details/82149726 查看时区 show variables like '%time_zone%'; 设 ...

  6. Excel 的 vlookup 函数

    突然发现, 大多数的开发, 都不会用 Excel. 想想, 像我这种, 熟练Excel 的函数如 vlookup, sumifs, contif 还会透视表的小哥哥, 已经不多了啦.

  7. 深入浅出了解生成模型-1:GAN模型原理以及代码实战

    更加好排版:https://www.big-yellow-j.top/posts/2025/05/08/GAN.html 日常使用比较多的生成模型比如GPT/Qwen等这些大多都是"文生文& ...

  8. Node v18.6 发布的这个新特性未来可能改变前端工程化

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  9. C#网络编程(五)----细嗦TCP粘包

    前情提要 四层网络模型各司其职,消息(SDU)在进入每一层时都会多加一个报头(PCI),这个PCI记录着该SDU的一些关键统计信息.SDU+PCI合并起来就组成一个完整的消息,简称为PDU 链路层:帧 ...

  10. wireshark 抓包查看包得明文消息

    转载注明出处: 最近在进行一些网络消息得定位,发现可以用wireshark查看网络包得消息内容,特此记录 需要注意得是,需要将wireshark更新到最新得版本,如果是老版本有可能不支持. 使用tcp ...