c++基础
搬砖专家
一块去吃麻辣烫啊。
展开
-
请你回答一下malloc的原理,另外brk系统调用和mmap系统调用的作用分别是什么?
malloc函数用于动态内存管理,使用管理内存池的方式来进行内存分配,申请大块内存作为堆区,分为多个内存块进行管理采用用隐式链表结构管理使用块,使用显示的管理空闲的内存块。当进行内存分配时,Malloc会通过隐式链表遍历所有的空闲块,选择满足要求的块进行分配;当进行内存合并时,malloc采用边界标记法,根据每个块的前后块是否已经分配来决定是否进行块合并。Malloc在申请内存时,一般...原创 2019-09-04 10:28:43 · 820 阅读 · 0 评论 -
请你说一说C++的内存管理是怎样的?
虚拟内存一般分为代码段,只读存储,和文本存储数据段,存放初始化的全区变量bss段,存放为初始化的全局变量和局部变量,以及初始化全为0的变量栈区,存放局部变量,返回值,返回地址,参数值堆区,动态内存的存放映射区,mmap的文件映射...原创 2019-09-04 11:19:30 · 250 阅读 · 0 评论 -
如何判断内存是否泄漏,什么是野指针
使用动态内存分配时,忘记delete或者free,会导致内存泄漏,内存泄漏并不是是指物理内存上的泄漏,而是应用程序对某个内存空间失去了控制。在linux环境下,我们可以使用valgrind工具来检查内存是否泄漏,另一方便可已在程序中添加内存申请和释放的统计功能,统计当前申请和释放是否一致野指针:指针指向已经删除的对象,或者访问未经许可的内存空间。...原创 2019-09-04 11:31:58 · 701 阅读 · 0 评论