一、栈的详解
运行时自动分配&自动回收:栈是自动管理的,程序员不需要手工干预。方便简单。
反复使用:栈内存在程序中其实就是那一块空间,程序反复使用这一块空间。
脏内存:栈内存由于反复使用,每次使用后程序不会去清理,因此分配到时保留原来的值。
临时性:(函数不能返回栈变量的指针,因为这个空间是临时的)
栈会溢出:因为操作系统事先给定了栈的大小,如果在函数中无穷尽的分配栈内存总能用完。
二、堆内存详解
操作系统堆管理器管理:堆管理器是操作系统的一个模块,堆管理内存分配灵活,按需分配。
大块内存:堆内存管理者总量很大的操作系统内存块,各进程可以按需申请使用,使用完释放。
程序手动申请&释放:手工意思是需要写代码去申请malloc和释放free。

本文详细解析了C语言中栈、堆和代码段、数据段的概念。栈是运行时自动分配和回收的内存,适用于临时变量,易导致溢出;堆内存由操作系统管理,适用于大块内存的按需分配;代码段存储可执行代码,数据段和bss段用于存放全局变量,bss段初始化为0。
最低0.47元/天 解锁文章
1119

被折叠的 条评论
为什么被折叠?



