内存的申请与释放

news/2024/11/17 0:40:47/

首先我们有两个问题

  • malloc()申请1G的内存能否成功?判断依据是什么?
  • 申请了一块空间没有free,进程就结束了,那么空间被回收了吗?

我们写一段代码来申请1G空间试一试

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>int main()
{char *s = (char*)malloc(1024*1024*1024);assert(s! NULL);printf("main over\n");exit(0);
}

这是我们执行程序前的资源情况
在这里插入图片描述
这是运行程序后
在这里插入图片描述
我们发现好像并没有太大的区别产生,这是因为我们申请内存后会在虚拟内存上进行划分,但是只有在真的使用这块空间的时候才会真正在分配物理内存

我们将代码进行修改

memset(s,0,1024*1024*1024);

我们添加这样一段代码,让我们申请到的空间进行清零
再次执行
在这里插入图片描述
内存占用增加,随后程序结束,内存释放 (运行过程中,需要对不用的空间进行free,而程序结束会自动将占用的内存释放)

如果我们申请超过内存大小的空间呢

在这里插入图片描述
假如我们内存空间不够用了,系统会将一部分不用内容存放在虚拟内存上,但是当程序结束后,外存上存储的一部分依旧还在,为什么程序结束不把那一部分调回来呢?系统在使用这部分内容时候才会将将其调回来,否则系统是不会随便操作的,防止内存空间再次不足

swapoff -a 停止虚拟内存交换空间命令

如果我们停掉虚拟内存,再去使用程序去申请大于内存的空间,这时会直接运行失败


http://www.ppmy.cn/news/272068.html

相关文章

如何释放linux的内存

你们知道怎么释放linux的内存吗不知道的话跟着学习啦小编一起来学习怎么释放linux的内存。 释放linux的内存的步骤 Linux下操作频繁时&#xff0c;物理内存会被快速用完&#xff0c;当操作结束后&#xff0c;物理内存没有被正常的释放&#xff0c;而一直当作caching&#xff…

AI实战营第二期 笔记5——MMPretrain代码课

文章目录 摘要MMPreTrain实战安装推理 OR 使用API数据集训练与测试微调 摘要 MMPretrain 是一个全新升级的预训练开源算法框架&#xff0c;旨在提供各种强大的预训练主干网络&#xff0c; 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSel…

qemu+buildroot+linux arm64虚拟化-宿主系统wsl2

文章目录 1.qemu2.buildroot配置编译 3.linux kernel下载交叉编译工具链 linux kernel 5.16配置内核config_kernel.shbuild_kernel.sh 4.启动虚拟机start_qemu.sh参数解释运行 环境&#xff1a; wls2、qemu8.2、buildroot、linuxkernel 1.qemu https://buildroot.org/download…

如何去掉WindTerm 的锁屏,在线求助

如何去掉WindTerm)2.1.0的锁屏 按住enter就行了

联想电脑管家 锁屏壁纸目录

联想电脑管家很多壁纸很漂亮&#xff0c;想保存又不知道在哪个文件夹下&#xff0c;终于找到&#xff0c;小记一下C:\ProgramData\Lenovo\devicecenter\LockScreen\cache\

公司电脑策略强制自动锁屏解决方案

解决域控制器策略强制电脑锁屏问题 chrome安装 Keep Computer Awake插件

联想电脑开机锁屏壁纸地址

一直很喜欢联想的开机壁纸&#xff0c;发现网络上回答的文件夹一直不准确&#xff0c;经过不断的查找&#xff0c;终于找到了图片的文件夹地址。 C:\Windows\Web\Screen 其中的img05.jpg&#xff0c;每次开机后几分钟内就会刷新&#xff0c;如果你发现这次开机的壁纸是你喜欢的…

关于电脑屏幕自动屏保锁屏的莫名状况修改

情况一&#xff1a; 明明电脑电源设置或是屏幕设置都会出现间隔几分钟就会自动屏保锁屏&#xff0c;很是麻烦&#xff0c;哪里都改成&#xff0c; 原因&#xff1a;这是系统无人值守时睡眠时间的设定&#xff0c;一般默认是两分钟&#xff0c;在比较谨慎的工作单位的电脑&…