为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量。为什么栈的大小有限制?

为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量 栈区数组长度使用变量会报错。 其原因就在于栈是编译器管理的,在程序运行前就已经分配好了空间的大小。而使用变量,编译器无法知道该分配多大的内存空间,于是报错。但堆上的内存是动态创建的,是在程序运行的同时为为它申请内存。(堆里的动态数组,是程序运行过程中动态申请的,而栈不一样,申请的数组长度在编译时就要确定下来,所以必须是确定的数字) 也正因
相关文章
相关标签/搜索