静态分配,局部变量分配,且一旦分配好,其内存大小就固定下来不能改变,在编译和连接的阶段就会分配好。数组
动态分配,就是指在程序执行的过程当中动态地分配或者回收存储空间的分配内存的方法。动态内存分配是由系统根据程序的须要即时分配,且分配的大小就是程序要求的大小。函数
1.变长数组。
2.声明的指针指向一个内存,用malloc等内存分配函数申请。
spa
内存的静态分配和动态分配的区别主要是两个:指针
一是时间不一样。静态分配发生在程序编译和链接的时候。动态分配则发生在程序调入和执行的时候。
二是空间不一样。堆都是动态分配的,没有静态分配的堆。
栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,好比局部变量的分配。动态分配由函数malloc进行分配。不过栈的动态分配和堆不一样,他的动态分配是由编译器进行释放,无需咱们手工实现。
内存