山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
为什么存在动态内存分配
我们已经掌握的内存开辟方式有:
int a=20 在栈空间上开辟四个字节
char arr[10]; 在栈空间上开辟10个字节的连续空间
但是上述的开辟空间的方式有两个特点
1 .空间开辟大小是固定的。
2 .数组在中明的时候,必须指定数组的长度,它所需要的内存在编译时分配
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才1那数组的编译时开群空间的方式就不能满足了。
这时候就只能试试动态存开辟了。
栈区
局部变量
函数形参
堆区
动态内存开辟
malloc
calloc
free
realloc
静态区
全局变量
静态变量