- 2024-11-01pool
boost.poolboost.pool库基于简单分隔存储的思想实现了一个快速、紧凑的内存池不仅能够管理大量对象,还可以用作STL的内存分配器,在需要大量分配或释放小对象时效率很高,且不需要考虑delete包含4个组成部分简单pool分配类实例object_pool单件内存池singleton_pool用于标准库po
- 2024-11-01(1)刷题第一弹
1.进程/线程/协程进程与线程:进程是资源分配的最小单位,线程是资源调度的最小单位。资源拥有:进程拥有独立的地址空间。而统一进程下的线程共享地址空间和资源,包括内存/文件句柄等。通信方式:进程通信有特定的机制,比如管道/共享内存/消息队列/信号等方式。而线程因为内存等资源是
- 2024-10-31内存管理相关——malloc,mmap,mlock与unevictable列表
一、背景之前的内核内存子系统的章节里已经介绍了内存回收有关的MIGRATE_TYPE的概念并做了不少的相关实验。详细见我之前写的博客 内存回收相关内核基础概念——MIGRATE_TYPE_kreclaimable没有回收-CSDN博客。锁内存相关的常用函数有四个,SetPageReserved/mlock/get_user_pa
- 2024-10-31深入计算机语言之C++:内存管理
- 2024-10-31c语言:动态内存管理中的malloc和free,calloc和realloc
为什么要有动态内存分配?通过之前的学习,我们已经掌握的内存开辟方式有:inta=20;//在栈空间上开辟四个字节chararr[10]={0};//在栈空间上开辟10个字节的连续空间上述空间的开辟的大小是固定的数组在申明的时候,必须指定数组的长度,数组空间一旦确定了大小不能进行调整。
- 2024-10-31指针--结构体指针
结构体:新的类型(由任意若干个基本类型组成)a1,a2,a3是AA这个结构体类型的个体,每个个体都有AA这个结构体里面的两个部件嵌套调用,结构体嵌套数组里的元素就是结构体child类型的数据x4是结构体AA类型的,a1,a2,a3也是结构体AA类型的,同一类型可以相等只看变量声名的时候是无法判
- 2024-10-27探索C++的奥秘之C/C++内存管理
一个程序当中的数据主要有以下几类:局部数据、静态数据和全局数据、常量数据、动态申请数据。1.C/C++内存分布1.栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。2.内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系
- 2024-10-26实现动态一维数组和二维数组
实现一维动态数组includeinclude<malloc.h>usingnamespacestd;voidoutput(intn){int*arr=(int*)malloc(sizeof(int)*n);//在c++中,则是int*arr=newint[n];if(arr==NULL)return;for(inti=n;i<=2*n-1;i++){ arr[i-n]=i; cout<<
- 2024-10-26动态内存管理详解
目录1.为什么要有动态内存分配2.malloc和free2.1malloc2.2free3.calloc和realloc3.1calloc3.2realloc4.常⻅的动态内存的错误4.1对NULL指针的解引⽤操作4.2对动态开辟空间的越界访问4.3对⾮动态开辟内存使⽤free释放4.4使⽤free释放⼀块动态开辟内存的
- 2024-10-26C语言:动态内存管理
目录为什么要有动态内存管理mallocfreecallocrealloc为什么要有动态内存管理内存分为栈区、堆区、静态区,每个区存放的变量如下图:目前我们掌握的内存开辟方法有:创建结构体structs{inti;intc;};创建一些变量:intx;intu[10];charl;还有创建联合等…
- 2024-10-24C++中的内存管理
下图是C++的内存储存管理的方式 由图不难得知,局部变量是储存在栈中的,而malloc,calloc,realloc开辟出来的空间是储存在堆中的,全局数据和静态变量储存在数据段中,也叫静态区.代码段存的是可执行代码和只读常量。 C语言中动态内存管理方式:malloc/calloc/realloc/f
- 2024-10-24【C++干货篇】——C/C++内存管理
【C++干货篇】——C/C++内存管理文章目录【C++干货篇】——C/C++内存管理1.C/C++内存分布1.1静态区/数据段:1.2常量区/代码段:1.3栈:1.4堆:1.5.内存映射区:2.C语言中动态内存管理方式:`malloc/calloc/realloc/free`1.`malloc`2.`calloc`3.`realloc`总结3.C++内存管理方
- 2024-10-23用malloc申请空间的开辟和free空间的释放
malloc的头文件是#include<stdlib.h>malloc开辟的空间虽然和数组一样可以调用,并且都是连续存放的,但是他们所在的位置不一样malloc开辟的空间位置在堆区;局部数组是把数据存在栈区;动态内存空间的大小可以调整;如果申请成功,会返回开辟好的空间的起始地址;如果开辟失败,会返回NU
- 2024-10-21刷c语言练习题9(牛客网)
1、12345678char*getmemory(void){ charp[]= "helloworld"; returnp;}voidtest(void){ char*str=NULL; str=getmemory(); printf(str);}请问运行Test函数会有什么样的结果?A、出错B、输出"helloworld"C、输出空
- 2024-10-21malloc底层实现以及和new的比较
背景:前几天去面试,被问到了一个问题:“malloc的底层实现是怎样的?怎样防止内存碎片?”当时答的不够好,现在再整理一下。(本文档通过收集整理网上博客而来。先挖个坑,等有时间了去看一下《深入理解操作系统》的第九章虚拟内存,再重新整理一篇)内存布局Linux中每个进程都有自己的虚拟地
- 2024-10-19动态内存管理 (上)
目录1.为什么要有动态内存分配 2.malloc和free2.1malloc2.11malloc申请空间和数组的空间有什么区别呢?2.2free3.calloc和realloc3.1calloc 3.2realloc 4.常⻅的动态内存的错误4.1对NULL指针的解引⽤操作4.2对动态开辟空间的越界访问 4.3对⾮动态开
- 2024-10-19【C语言】动态内存管理(上)
本篇博客将讲解以下知识点:(1)为什么要有动态内存分配(2)malloc和free1、为什么要有动态内存分配我们已经掌握的内存开辟方式有:intval=40;//向内存中申请4个字节空间存储valchararr[10];//向内存申请10个字节空间 上述的开辟空间的方式有两个特点:(1)空间的开辟
- 2024-10-15【C语言】动态内存管理及相关笔试题
文章目录一、为什么有动态内存分配二、malloc和free1.malloc函数的使用2.free函数的使用三、calloc和realloc1.calloc函数的使用2.realloc函数的使用四、常见动态内存分配的错误五、动态内存经典笔试题题1题2题3六、总结C/C++中程序内存区域划分一、为什么有动态
- 2024-10-13C++ 内存管理
一、C/C++内存分布首先我们通过一道题,来了解内存分布:intglobalVar=1;staticintstaticGlobalVar=1;voidTest(){staticintstaticVar=1;intlocalVar=1;intnum1[10]={1,2,3,4};charchar2[]="abcd";constchar*pChar3="abcd";int*
- 2024-10-11【C/C++内存管理】
【知识预告】C/C++内存分布C语言中动态内存管理方式C++内存管理new和delete的实现原理常见面试题内存泄漏1C/C++内存分布intglobalVar=1;staticintstaticGlobalVar=1;voidTest(){ staticintstaticVar=1; intlocalVar=1; intnum1[10]={1,2,3,
- 2024-10-0943 C 程序动态内存分配:内存区域划分、void 指针、内存分配相关函数(malloc、calloc、realloc、_msize、free)、内存泄漏
目录1 C程序内存区域划分1.1代码区(CodeSection)1.2全局/静态区(Global/StaticSection)1.3栈区(StackSection)1.4 堆区(HeapSection)1.5动态内存分配2void指针(无类型指针)2.1void指针介绍2.2void指针的作用2.3void指针的特点2.4 void指针类
- 2024-09-29动态内存分配——C语言
本篇文章是对动态内存分配部分内容的学习分享,包含了四个内存函数的接受奥与使用以及常见的一些错误那咱们废话不多说,直接开始吧!1.动态内存功能存在的意义说到内存开辟也许我们并不能马上做出反应且清楚得知道指的是什么事实上,我们已经掌握了内存开辟方法了只是我们对这个
- 2024-09-28C语言-动态内存管理(malloc、calloc、realloc)
目录1.内存布局2.动态内存函数2.1malloc2.1.1malloc是什么2.1.2如何用编辑2.2free2.2.1free是什么2.2.2如何用2.3calloc2.3.1calloc是什么2.4realloc2.4.1realloc是什么2.4.2realloc如何使用2.4.3realloc可以实现与malloc同样的功能3.常见的动态
- 2024-09-28【C++】内存管理:内存分布、new/delete
本篇主要介绍一下C++的内存管理相关知识。C++的内存管理和C语言保持一致。 1.C/C++内存分布一个程序的数据存储是需要分区的。常见的内存区域划分如下。我们学C++主要了解栈,堆,数据段,代码段。我们先看下面代码和相关问题。intglobalvar=1;staticintst
- 2024-09-28xv6踩坑笔记
lazyallocationtestpgbug:FAILED在系统调用函数(如sys_pipe)中,检测到致命错误(例如访问非法内存)时,不能直接用p->killed=1,而是要return-1。mmapscause0x000000000000000d(loadpagefault)sepc=0x0000000080007bb0stval=0x0000000000000000PANIC:kerneltrapgdb调试