静态分配的局限性
静态数组:int arr[100]
需要编译时确定,且空间开辟是固定的
自动变量:函数内定义的局部变量生命周期受限于函数栈帧
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。这时候就只能试试动态存开辟了。
动态分配的优势
- 运行时按需分配(如根据用户输入决定数据规模)
- 灵活调整内存大小(动态扩容/缩容)
- 突破栈空间限制(堆空间通常比栈大得多)
- 实现跨函数的数据持久化(如链表节点)
静态数组:int arr[100]
需要编译时确定,且空间开辟是固定的
自动变量:函数内定义的局部变量生命周期受限于函数栈帧
但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。这时候就只能试试动态存开辟了。