1、空间实现自动管理:运行时空间自动分配,运行结束空间自动收回。栈是自动管理的,程序员不需要手动干预,方便简单。
2、能被反复使用:栈内存在程序中用的都是一块内存空间,程序通过自动开辟空间和自动释放,会反复使用这一块空间。
3、脏内存:栈内存由于反复使用,每次使用后程序不会去清空内容,因此当下一次该空间再被分配时,上一次的值会还在。
4、临时性:函数不能返回栈变量的指针,因为这个空间在函数运行结束之后就会被释放。
1、灵活:堆是另一种内存管理形式的内存区域,堆内存的管理灵活。
2、内存量大:堆内存空间很大,进程可以按需手动申请,使用完手动释放。
3、程序手动申请和释放:手动的意思就是需要写代码去申请malloc和释放free
4、脏内存:堆也是反复使用的,而且使用者用完释放前不会清楚,因此也是脏的。
5、临时性:堆内存在malloc后和free之前的这期间可以被访问。在malloc之前free之后不能访问,否则会有不可预料的后果。
留言与评论(共有 0 条评论) “” |