存储分配方式

   储存分配方式

操作系统会为了一个准备好运行的程序分配内存空间,包括四个部分:代码区、全局变量和静态变量区、栈区、堆区。

1、代码区:用来存放程序的指令。

2、全局变量和静态变量:用于存放全局变量、常量以及static存储的局部变量的内存分配。

3、栈区:用于存放局部变量、函数的形参、函数返回地址等内存分配。

4、堆区:用于存放变量的动态内存的分配。

对程序实体的内存分配可以采用三种存储分配方式:静态分配、自动分配、动态分配

静态分配:程序运行前,由编译器编译的时候进行的内存分配,且到整个程序运行完才释放内存空间(对应全局变量和静态变量区)

自动分配:在程序执行的时候才对其进行分配内存,执行完代码段或函数后就释放空间(对应栈区)

动态分配:有需要才进行内存分配,运行完手动释放内存空间(堆区)

 

1.free()函数

函数原型:void free(void *ptr)

功能说明:释放由ptr指示的存储块

参数说明:ptr为指向被释放存储块的指针

2.malloc()函数

函数原型:void malloc(site_t  size)

功能说明:从堆空间中分配大小为size个字节的内存空间给本函数的调用者。

参数说明:size指出要求分配的内存空间大小(单位:字节)

返回值:如

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值