08内存管理

作者: 忘带充电宝de皮卡丘 | 来源:发表于2018-05-28 18:17 被阅读0次

C语言的内存分两种:静态内存,动态内存

静态内存

静态内存包括 栈区,数据区,代码区

[特点]

​ (1)静态内存,由系统进行分配 who

​ (2)静态内存的大小在程序运行之前就可以确定 when

​ (3)静态内存是在 栈区,数据区,代码区 进行分配的 where

​ (4)静态内存,由系统进行释放 who

动态内存

动态内存,堆区

[特点]

​ (1)动态内存,由程序员手动写代码进行分配 who

​ (2)动态内存,内存大小/内存分配动作,必须在程序运行时才能确定 when

​ (3)动态内存,是在 堆区 进行分配的 where

​ (4)动态内存,由程序员手动写代码进行释放 who

堆内存分配 memory alloc

void *malloc(size_t);
//malloc的参数,表示所要分配的堆内存的大小(以字节为单位)
//malloc的返回值,返回的是成功分配的内存的首地址

​ [注] 因为,返回的这个地址可能是任意大小内存的首地址,所以返回值类型为一个泛型指针类型

堆内存释放 free

void free(void *);
//传入所要释放堆内存的首地址,释放对应的堆内存
//同一个堆内存,不能多次释放,多次释放会导致程序崩溃
//堆内存不进行释放,会导致内存泄露
//对于一个长时间运行的应用程序来说,内存泄露会导致系统的[可用内存]变少,应用反应迟钝,卡 

//对于一个短时间运行的应用程序来说,内存泄露可以忽略.因为程序结束时,未及时释放的堆内存,也会被系统释放

相关文章

  • 08内存管理

    C语言的内存分两种:静态内存,动态内存 静态内存 静态内存包括 栈区,数据区,代码区 [特点] ​ (1)静态...

  • iOS 自己需要的

    01、动画 runtime 03、runloop 04、block05、单利 06、内存管理07、网络08、git...

  • 08-内存管理

    一、 基本原理 1. 什么是内存管理 移动设备的内存极其有限,每个app所能占用的内存是有限制的 当ap...

  • Chapter 08 - 内存管理

    以前的学习方法总是看完视频或者找到解决办法就没有然后了,导致很多东西都了解的不够深入,再去查找的时候也是费时费力。...

  • iOS内存管理详解

    目录 block内存管理 autorelease内存管理 weak对象内存管理 NSString内存管理 new、...

  • 第10章 内存管理和文件操作

    1 内存管理 1.1 内存管理基础 标准内存管理函数堆管理函数虚拟内存管理函数内存映射文件函数 GlobalMem...

  • 操作系统之内存管理

    内存管理 包括内存管理和虚拟内存管理 内存管理包括内存管理概念、交换与覆盖、连续分配管理方式和非连续分配管理方式(...

  • JavaScript —— 内存管理及垃圾回收

    目录 JavaScript内存管理内存为什么需要管理?内存管理概念JavaScript中的内存管理JavaScri...

  • OC - OC的内存管理机制

    导读 一、为什么要进行内存管理 二、内存管理机制 三、内存管理原则 四、MRC手动内存管理 五、ARC自动内存管理...

  • 3. 内存管理

    内存管理 内存管理包含: 物理内存管理; 虚拟内存管理; 两者的映射 除了内存管理模块, 其他都使用虚拟地址(包括...

网友评论

    本文标题:08内存管理

    本文链接:https://www.haomeiwen.com/subject/zyzgjftx.html