内存的静态分配和动态分配有啥不同?


内存的静态分配和动态分配区别:

1.时间不同:

 静态分配发生在程序的编译和链接的时候。

   动态分配发生在程序调入和执行的时候。

2.空间不同:

 静态分配只能是有栈来分配(有编译器来完成,比如定义一个局部变量 int b = 1)

   动态分配可以是堆分配(malloc分配,需要手动回收内存)或者栈分配(编译器来完成,自动回收内存)

3.灵活度不同:

 静态分配需要提前指定空间大小,不能再动态改变大小。

    动态分配不需要提前分配存储空间,可以动态的调整大小。

4.生命周期不同:

  静态分配的内存在程序一开始运行就会分配内存,直到程序结束了,内存才会被释放。

     动态分配的内存是在程序调用函数时才被分配,函数结束了,动态内存就应该被释放掉(别忘了手动释放)。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM