静态内存是由main函数分配的存储空间,并在栈中给被调用的函数分配一块存储空间,当每一栈所存储的函数出栈(执行结束),会被系统释放,并返回给调用它的函数,然后再出栈,被释放!最终全部返回给main函数!main函数执行结束后出栈!(全部被释放)!
动态内存是由malloc()函数来分配的,以堆来存储!执行完不会被系统自动释放,需要程序员手动释放内存!动态内存是以堆来分配的,堆是利用排序的方式分配的,因为它不在栈里面所有动态内存会跨函数使用!
栈是一种存储结构!而堆属于分配内存的一种排序方式!所以堆不会(出栈)更不会被释放!
动态内存/静态内存
最新推荐文章于 2024-08-28 20:14:40 发布