
C/C++内存管理精讲
文章平均质量分 83
竹烟淮雨(408考研ing)
如果结果不如你所愿
就在尘埃落定前奋力一搏
展开
-
C++内存管理(3)——内存池
池化技术是一种降低频繁操作导致开销过大的方法,如内存池、线程池、进程池和对象池等。内存池(Memory Pool)是一种内存分配方式。通常我们习惯直接使用new、malloc等API申请内存,这样做的缺点在于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。原创 2023-09-07 00:41:07 · 824 阅读 · 0 评论 -
C++内存管理(2)new、delete详解
在C++中,内存管理是开发者的一项重要责任,也是容易出错的地方。开发者可能会遗忘释放已分配的内存,导致内存泄漏。重载new和delete可以帮助开发者更好地追踪和管理内存分配。通过在重载的new和delete操作符中插入日志或者调试语句,开发者可以监测和记录所有内存分配和释放的情况,从而检测内存泄漏。原创 2023-09-07 00:37:14 · 1478 阅读 · 0 评论 -
C++智能指针之unique_ptr(保姆级教学)
独占式指针(专属所有权),同一时刻,只能有一个unique_ptr指向这个对象;当指针销毁,指向的对象也销毁;因此该指针不支持拷贝和赋值操作,也不存在引用计数。原创 2023-09-07 00:22:14 · 4549 阅读 · 0 评论 -
C++智能指针之weak_ptr(保姆级教学)
weak_ptr:类模板,弱指针(弱引用计数)weak_ptr弱指针,不会控制影响对象的生命周期(不会改变对象的引用计数),shared_ptr释放指向对象时,是不会考虑weak_ptr是否指向该对象weak_ptr不是独立指针,不能单独操作所指向的资源(不配拥有对象),更不能指向一个新的空间;原创 2023-09-04 03:27:33 · 2055 阅读 · 0 评论 -
C++智能指针之shared_ptr(保姆级教学)
共享式指针:多个指针可以同时指向同一个对象(共享所有权,协同工作),当最后一个指针被销毁或者指向其他对象时,这个对象会被释放;原创 2023-09-04 03:19:52 · 768 阅读 · 0 评论 -
C++内存管理介绍及智能指针
C++开发中大多问题都是由于内存泄漏导致,在C++11之前,和C语言一样只能通过人为来进行内存管理(new和delete),在C++11之后出现了智能指针new/delete必须成对出现,new[]/delete []必须成对出现人为的控制new/delete问题,无法杜绝内存泄漏。原创 2023-09-04 03:11:22 · 154 阅读 · 0 评论 -
内存管理之:内存空间分布和栈攻击(黑客常用攻击手段)
函数的定义通常存放在代码段中,而不是栈中。在程序运行时,代码段是用来存储程序的指令的内存区域,它通常是只读的。函数的定义在编译时就确定了,并且存放在代码段中,以便在程序执行过程中被调用和执行。栈则是用于存放局部变量、函数参数和临时数据等的内存区域,它在函数调用时动态分配和释放,具有先进后出的特性。原创 2023-09-04 03:05:24 · 570 阅读 · 0 评论 -
内存管理概述
为什么要学习内存管理?1. 高效性:内存管理能够帮助计算机更高效地利用内存。例如,当程序需要更多的内存时,操作系统会将它分配给程序,这样程序就可以存储更多的数据。如果内存没有被正确地管理,计算机可能会因为缺乏可用内存而变得非常慢。2. 安全性:内存管理也帮助防止了一些安全问题。例如,当一个程序尝试访问它没有权限访问的内存地址时,这可能会导致程序崩溃或者出现其他问题。良好的内存管理可以防止这种情况发生。3. 稳定性:学习内存管理也有助于了解如何防止和解决一些常见的程序错误,如缓冲区溢出、空指针引用等。原创 2023-09-04 02:55:57 · 327 阅读 · 0 评论