malloc函数的用法举例(从操作系统内存管理来说,malloc申请一块内存的背后原理是什么)

2025-03-30 19:40:01 0

malloc函数的用法举例(从操作系统内存管理来说,malloc申请一块内存的背后原理是什么)

本文目录

从操作系统内存管理来说,malloc申请一块内存的背后原理是什么

内存的一部分空间被用来保存页表,哪个页被使用了,哪个页空着,哪个页分给了哪个进程,内存管理单元mmu都会在页表里做记录。以4k为一页,意味着页地址数只是物理地址的4096分之一,各种查询法速度都够用了。程序内的地址是一个虚拟的连续地址,程序对虚拟地址的读写由mmu转换为对物理地址的读写。

操作系统在帮助程序初始化,分配了默认数量的页以后,就任凭程序折腾了。你用标准malloc函数管理也好,自己写个替代品也好,只要虚拟地址对应的物理地址已经分配给程序,都不需要操作系统插手。

一旦程序读写的虚拟地址没有对应的物理地址,mmu会抛出异常信号,暂停程序的运行,然后操作系统会填写页表,分配一个新的页面给程序,对于用户程序来说是感受不到这个过程的。

操作系统就好比一个坐拥半城的渣男,对每个女友(程序)都承诺全部的房产,然而实际只给一个小房子供程序使用管理(malloc)。哪个女友家具摆不下了,管家(mmu)马上通知渣男开个新房产证,于是用较少的资源维持了庞大的女友人数,倒是物尽其用。

c语言中malloc申请的空间和直接定义变量申请的空间有什么区别为什么要有malloc这种形式

有很大区别。根据以前的编程经验,要点有三点:一是空间分配的连续性;二是动态内存申请;三是防止程序执行中出现异常错误。

以下分别说明。

直接定义变量与malloc定义变量的编程含义;malloc事先分配好了内存空间。

在c语言中,malloc函数原型为void *malloc(unsigned int slong),其作用是在内存的动态存储区中分配一个长度为slong的连续空间。此函数的返回值是分配区域的起始地址,如:

char *p;

p=malloc(64000);//空间不够指针为null。

如果用数组定义:

char p,表示的是声明了一个数组,此数组的大小64000个字节。

但是,请注意要点:

系统这时并没有为其分配内存。只是在使用时才分配。

动态内存申请与释放,确保内存的正确使用。

比如,我们在控制系统中,经常要对用户输入的一段零件程序、一个图象文件进行解释、识别,那么首先要做的,是将此文件装入内存中,执行完成后,立即释放。这就需要malloc及free了。延用上面的定义:

fread(p,64000,1,fp);

fclose(fp);

free(p);

要点是随时申请,用完释放。

如果不用malloc,直接定义,在大型软件开发中,一般会导致程序执行异常,出现不可控的结果。

在前两点,都用到char p及malloc(64000)。

很多初学者,为了省事,喜欢用char p这样的定义。这样最容易出现bug,尤其是当p指针越大时,出现问题几率越大。

这是因为,对于p把其它变量空间覆盖了。

在VC、VS中,情况要稍好,因为管理的内存足够大。

总结:在大型软件开发中,如果不用malloc,直接定义数组,一般会导致程序执行异常,出现不可控的结果。

对于超过1000字节的数组空间,建议用malloc/free,以确保数组变量的绝对正确;小的空间,直接用数组定义即可。

malloc函数的用法举例(从操作系统内存管理来说,malloc申请一块内存的背后原理是什么)

本文编辑:admin

更多文章:


calm寓意(calm 这单词什么意思还有它的反义词是什么)

calm寓意(calm 这单词什么意思还有它的反义词是什么)

本文目录calm 这单词什么意思还有它的反义词是什么calm是什么意思,速回啊calm什么意思quiet、 calm、 silent 与still的区别是什么网名calm什么意思calm 这单词什么意思还有它的反义词是什么意思是平静的,镇定

2025年3月21日 03:40

browser是什么(QQBrowser是什么)

browser是什么(QQBrowser是什么)

本文目录QQBrowser是什么手机上FTBrowser是什么软件QQBrowser是什么QQbrowser是QQ浏览器。QQ浏览器是腾讯科技(深圳)有限公司开发的一款浏览器,其前身为TT浏览器。QQ浏览器秉承TT浏览器1-4系列方便易用的

2025年3月6日 05:10

易语言辅助论坛(请问想学写游戏脚本,是学易语言还是学按键精灵)

易语言辅助论坛(请问想学写游戏脚本,是学易语言还是学按键精灵)

本文目录请问想学写游戏脚本,是学易语言还是学按键精灵学会易语言用处大吗请问想学写游戏脚本,是学易语言还是学按键精灵很多人都对游戏脚本感兴趣,但大部分只是想通过脚本帮助自己在游戏的时候玩的更加省劲,当然更多研究游戏的脚本的人或者工作室只是想通

2025年3月18日 14:40

asp高级教程(最好的asp.net工程师教程)

asp高级教程(最好的asp.net工程师教程)

本文目录最好的asp.net工程师教程网站ASP服务器搭建详细教程asp网页制作教程asp页面怎么制作最好的asp.net工程师教程IT学习联盟网站的《《零基础aspnet就业班》》。………………………………………………………… 如果对as

2025年2月20日 04:50

python中float的用法(python怎么float转成int)

python中float的用法(python怎么float转成int)

本文目录python怎么float转成int在python中 float当中包含int吗python中input怎么一行输入两个float类型的数python中float的比较方式python中如何实现float(3/5)=0.6pytho

2025年3月19日 17:00

permanently的意思(英文单词permanetly是什么意思啊!)

permanently的意思(英文单词permanetly是什么意思啊!)

本文目录英文单词permanetly是什么意思啊!请问permanent是什么意思forever是什么意思permanently是什么意思英文单词permanetly是什么意思啊!应该是permanently,permanent的副词形式。

2025年2月19日 19:00

cocktail lounge是什么意思(lounge是什么意思)

cocktail lounge是什么意思(lounge是什么意思)

本文目录lounge是什么意思cocktail party是什么意思lounge是什么意思lounge做名词时是 客厅; 休息厅; (机场等的) 等候室 的意思例句|Let’s have it in the lounge。lounge做不及

2025年2月15日 22:20

在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?if(i=a<ba:b;i>0;i--)啥意思

在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?if(i=a<ba:b;i>0;i--)啥意思

本文目录在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解if(i=a0;i--)啥意思C语言中:x>yx:y; 是什么意思问号和冒号的作用是什么在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?:称为条件运算

2025年3月29日 11:50

scanf返回值被忽略是怎么回事(忽略scanf的返回值要怎么改pta)

scanf返回值被忽略是怎么回事(忽略scanf的返回值要怎么改pta)

本文目录忽略scanf的返回值要怎么改pta禁止显示状态 警告 C6031 返回值被忽略: “scanf“.为什么编程总是说我忽略了scanf的返回值,很多次都这样改不了了忽略scanf的返回值要怎么改pta摘要把scanf改成:scanf

2025年3月18日 18:00

python怎么读取txt文件(在python中如何调用txt文件中的某一列数据)

python怎么读取txt文件(在python中如何调用txt文件中的某一列数据)

本文目录在python中如何调用txt文件中的某一列数据如何用python将多个内容格式一致的txt文件合并成一个txt文件python怎么读取txt文件在python中如何调用txt文件中的某一列数据你说的是用python读取txt文件中

2025年3月17日 13:20

源码汇app下载安卓晒(汇编源码下载)

源码汇app下载安卓晒(汇编源码下载)

本文目录汇编源码下载如何破解安装软件的源代码android记账软件的汇总源码怎么实现汇编源码下载附件源码是我学习汇编语言些的源码,有详细的注释如何破解安装软件的源代码根据楼主的要求:楼主想要破解软件,建议楼主 下载IDA PRO 反汇编工具

2025年2月24日 06:20

帝国cms首页模板修改(各位大虾,小弟问一个弱弱的问题帝国CMS怎么修改首页标题图片,要多久才能被百度收录)

帝国cms首页模板修改(各位大虾,小弟问一个弱弱的问题帝国CMS怎么修改首页标题图片,要多久才能被百度收录)

本文目录各位大虾,小弟问一个弱弱的问题帝国CMS怎么修改首页标题图片,要多久才能被百度收录帝国cms 首页导航怎样修改帝国CMS问题修改首页模板帝国cms怎样换首页各位大虾,小弟问一个弱弱的问题帝国CMS怎么修改首页标题图片,要多久才能被百

2025年3月30日 22:00

parameter1(书上说,linux命令格式为 command [-options] parameter1 parameter2 ls -al,这个怎么理解)

parameter1(书上说,linux命令格式为 command [-options] parameter1 parameter2 ls -al,这个怎么理解)

本文目录书上说,linux命令格式为 command [-options] parameter1 parameter2 ls -al,这个怎么理解C++里cannot convert parameter 1 from ’double’ to

2025年2月10日 00:50

fedora14 32bit(fedora 14该下载那个文件)

fedora14 32bit(fedora 14该下载那个文件)

本文目录fedora 14该下载那个文件我想装一个fedora 14 求下载什么(比如iso镜像之类的),具体步骤,谢谢fedora 14系统下载fedora 14如何汉化为什么eclipse在fedora14 中打不开啊fedora14怎

2025年2月11日 23:50

delphi和python(Delphi,易语言,c++,JAVA,Python到底学哪个更好,我想找一门深入学习)

delphi和python(Delphi,易语言,c++,JAVA,Python到底学哪个更好,我想找一门深入学习)

本文目录Delphi,易语言,c++,JAVA,Python到底学哪个更好,我想找一门深入学习目前世界上那种编程语言运用最广泛十大编程语言特点及应用领域是什么请问在delphi中怎么调用python已经写好的py程序为什么大学只学c++和j

2025年3月17日 15:30

怎么改变电脑鼠标样式(请问如何改变电脑上屏幕显示出的鼠标的形状)

怎么改变电脑鼠标样式(请问如何改变电脑上屏幕显示出的鼠标的形状)

本文目录请问如何改变电脑上屏幕显示出的鼠标的形状要怎样弄才能使电脑上的鼠标个性化点,比如自己把鼠标的箭头变成卡通之类的电脑鼠标怎么换皮肤如何改变自己电脑桌面上的鼠标的形状电脑怎么改鼠标的颜色普通的一般是白色的.!改下其他颜色可以吗请问如何改

2025年3月12日 02:40

Android下xml文件存储的位置,菜鸟问题,求大神解决?c#每分钟读取一次xml文件,具体怎么做本人菜鸟

Android下xml文件存储的位置,菜鸟问题,求大神解决?c#每分钟读取一次xml文件,具体怎么做本人菜鸟

本文目录Android下xml文件存储的位置,菜鸟问题,求大神解决c#每分钟读取一次xml文件,具体怎么做本人菜鸟Android下xml文件存储的位置,菜鸟问题,求大神解决一定要用xml来读写的话,就查一下安卓内部存储吧。那个是保存在dat

2025年2月28日 13:50

xswl是什么意思(网络用语xswl和zqsg是什么意思)

xswl是什么意思(网络用语xswl和zqsg是什么意思)

本文目录网络用语xswl和zqsg是什么意思xswl是什么意思,别人给我的留言xwsl什么意思xswl什么意思xslw什么意思xswl是什么意思网络用语xswl和zqsg是什么意思1、xswl指“笑死我了”(xiào sǐ wǒ le)拼音

2025年2月16日 13:50

工作流平台系统(计算机高手解释一下 工作流系统 (Workflow systems))

工作流平台系统(计算机高手解释一下 工作流系统 (Workflow systems))

本文目录计算机高手解释一下 工作流系统 (Workflow systems)小型oa工作流管理系统的开发是不是主要是工作流管理!oa还是主要的么工作流管理系统的介绍计算机高手解释一下 工作流系统 (Workflow systems)工作流(

2025年2月10日 18:10

成员函数特征(什么是成员函数)

成员函数特征(什么是成员函数)

本文目录什么是成员函数类成员函数的重写,重载和隐藏的区别什么叫静态函数成员,它有何特点C++如何在一个类的成员函数中调用另一个类的成员函数类中定义的数据成员和成员函数的两个概念谁能帮我理清楚一下,分别解释下以及两者区别与一般成员函数比较,构

2025年2月14日 00:10

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索