28、Linux 动态内存管理全解析

Linux 动态内存管理全解析

1. 动态内存分配概述

在编程中,内存存在自动变量和静态变量等形式,但动态内存的分配、使用和释放是任何内存管理系统的基础。动态内存是在运行时分配的,而非编译时,其大小在分配时可能才确定。当开发者无法提前知晓所需内存的数量或使用时长时,就需要动态内存。例如,存储文件内容或键盘输入时,由于文件大小未知,用户输入的按键数量也不确定,因此缓冲区大小会动态变化,可能需要根据读取的数据量动态调整。

在 C 语言中,没有直接由动态内存支持的变量类型。例如,C 语言没有提供直接获取存在于动态内存中的 struct pirate_ship 的机制,而是提供了分配足够内存以容纳该结构体的方法,程序员通过指针来操作这块内存。

2. 经典的动态内存分配函数:malloc()

malloc() 是 C 语言中用于获取动态内存的经典接口,其原型如下:

#include <stdlib.h> 

void * malloc (size_t size);

成功调用 malloc() 会分配 size 字节的内存,并返回指向新分配内存区域起始位置的指针。需要注意的是,分配的内存内容是未定义的,不要期望其初始值为零。若分配失败, malloc() 返回 NULL ,并将 errno 设置为 ENOMEM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值