介绍malloc与free函数的用法,并利用C语言自己实现malloc与free函数,完成内存管理。
2023-12-21 16:24:47 167KB
1
介绍C++对象在内存中是怎样分布的,有助于深层学习C++。
2023-12-19 08:01:46 148KB
1
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存泄漏、内存回收这三个方面来探讨C++内存管理问题。 内容预览: 1 内 存管理 1.1 C++内存管理详解 1.1.1 内存分配方式 1.1.1.1 分配方式简介 1.1.1.2 明确区分堆与栈 1.1.1.3 堆和栈究竟有什么区别? 1.1.2 控制C++的内存分配 1.1.2.1 重载全局的new和delete操作符 1.1.2.2 为单个的类重载 new[ ]和delete[ ] 1.1.3 常见的内存错误及其对策 1.1.4 指针与数组的对比 1.1.4.1 修改内容 1.1.4.2 内容复制与比较 1.1.4.3 计算内存容量 1.1.5 指针参数是如何传递内存的? 1.1.6 杜绝“野指针” 1.1.7 有了malloc/free为什么还要new/delete? 1.1.8 内存耗尽怎么办? 1.1.9 malloc/free的使用要点 1.2 C++中的健壮指针和资源管理 1.2.1 第一条规则(RAII) 1.2.2 Smart Pointers 1.2.3 Resource Transfer 1.2.4 Strong Pointers 1.2.5 Parser 1.2.6 Transfer Semantics 1.2.7 Strong Vectors 1.2.8 Code Inspection 1.2.9 共享的所有权 1.2.10 所有权网络 2 内存泄漏 2.1 C++中动态内存分配引发问题的解决方案 2.2 如何对付内存泄漏? 2.3浅谈C/C++内存泄漏及其检测工具 2.3.1 内存泄漏的定义 2.3.2 内存泄漏的发生方式 2.3.3 检测内存泄漏 2.3.3.1 VC下内存泄漏的检测方法 2.3.3.2 使用BoundsChecker检测内存泄漏 2.3.3.3 使用Performance Monitor检测内存泄漏 3 探讨C++内存回收 3.1 C++内存对象大会战 3.1.1 基本概念 3.1.2 三种内存对象的比较 3.1.3 使用栈对象的意外收获 3.1.4 禁止产生堆对象 3.1.5 禁止产生栈对象 3.2 浅议C++ 中的垃圾回收方法
1
用C++编写的获取系统内存的相关信息程序代码。
2023-11-02 08:00:17 9.89MB 系统内存
1
c++中很好用的内存池封装,很好的解决反复new,delete带来的内存空间碎片问题,小内存,大内存都适用,里面做了直接申请空间和用内存池效率的对比,我们的项目就在用它,现分享出来,vc6上直接编译通过。
2023-10-20 08:00:07 20KB 内存池、防止内存碎片
1
内存越界问题是项目开发中比较难解决的问题,下面就简单的描述下内存越界的种类、现象及引起的原因。
2023-04-17 15:07:25 1.96MB 内存越界
1
本篇文章收集了近一年来所有关于智能指针的面试相关内容。以智能指针的面试题线索,穿插讲解完最常用的四种智能指针的各个方面。本文讲解4个智能指针的基本概念和特性,以及其他设计到的知识点。讲解的过程中,如果此部分内容涉及到面试题目,会在旁边以这个题目的序号来标注出,方便大家对着题目序号来寻找问题的答案。文章整理了近两年来10个关于智能指针的问题,并且将这些面试问题编号序号,所有的面试题都在文章里面有答案,在文章中以上标的形式标出了对应的地方,方便大家查阅和重新阅读。在文章的最后,会根据文章讲解的内容和答案,对着10个问题进行解答。 对于不需要面试的同学,看完此篇文章,相信大家会对智能指针有更深入的了解和感受。并且结合着面试的题目来看,在阅读的过程中带着自己的思考,相信你会有更大的收获。 对于需要面试C++相关岗位的文章,看完这篇文章,如果面试官再问你智能指针,我敢肯定,你一定可以侃侃而谈了~智能指针的面试题,只看这一篇就够了!相信看完这篇文章,妈妈再也不用担心面试官考我智能指针的问题啦!
2023-04-11 18:38:46 80KB c++ 指针 面试 内存泄漏
1
C++动态分配内存(new)和撤销内存(delete) 在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数。 注意: new和delete是运算符,不是函数,因此执行效率高。 虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算符。new运算符的例子: new int; //开辟一个存放整数的存储空间,返回一个指向该存储空
2023-04-02 11:23:51 71KB c++ c语言指针 delete
1
主要读写函数为:RFM2gWrite和RFM2gRead。进行简单的字符串读写和结构体读写。
2023-03-28 10:48:11 2KB c++ rfm
1
本项目实现的是一个高并发的内存池,它的原型是Google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替换系统的内存分配相关函数malloc和free。该项目就是把tcmalloc中最核心的框架简化后拿出来,模拟实现出一个mini版的高并发内存池,目的就是学习tcmalloc的精华。该项目主要涉及C/C++、数据结构(链表、哈希桶)、操作系统内存管理、单例模式、多线程、互斥锁等方面的技术。 项目详解:https://blog.csdn.net/chenlong_cxy/article/details/122819562?spm=1001.2014.3001.5502
2023-03-20 10:53:31 11.26MB c++ 多线程 内存池 负载均衡
1