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