内存动态分配与静态分配and储存区域

本文探讨了C/C++中的内存分配,包括静态内存分配(全局变量、静态局部变量)和动态内存分配(malloc/new)。静态内存分配在程序开始执行前完成,而动态内存分配则在运行时进行,需要程序员手动释放。文章还详细阐述了C中的内存存储区域,如栈、堆、全局区等,并比较了堆和栈在申请方式、响应及大小限制上的差异。
摘要由CSDN通过智能技术生成

一 静态内存分配

  1. C语言的全局变量、静态局部变量的存储实在编译时确定的,其存储的空间的实际分配在程序开始执行前完成。

 

  2. 在栈上创建的,比如局部自动变量,在执行进入变量定义所在的复合语句时为他们分配存储单元。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。

 

  3. 以静态方式安排存储的好处主要是实现比较方便,效率高。

 

二 动态内存分配

  从堆上分配,亦称动态内存分配 。程序在运行的时候用 malloc 或 new 申请任意多少的内存,程序员自己负责在何时用 free 或 delete 释放内存。动态内存的生存期由程序员决定 ,使用非常灵活,但如果在堆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值