定义局部变量数组大小过大报错

Posted 双河子思

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义局部变量数组大小过大报错相关的知识,希望对你有一定的参考价值。

  如果定义的局部变量数组大小过大,编译器会报错“栈溢出”。
数组声明在函数内部,属于局部变量,存放在了栈上,如果数组过大比如a[1000000]。那数组占用的内存大小为:1000000*4byte约等于4M。而栈的默认内存空间为1M左右,所以会导致内存溢出解决这个问题。
解决这个问题方法为:可以将数组声明在全局存储区或堆上即可
方法一:申明为全局变
方法二:存放在堆上

以上是关于定义局部变量数组大小过大报错的主要内容,如果未能解决你的问题,请参考以下文章

JVM虚拟机------运行时数据区-----JVM虚拟栈----局部变量表

成员变量与局部变量

C语言中的 局部变量,存储在啥地方?

如何在MYSQL用户定义函数中通过另一个字符串变量引用一个局部变量名?

C中什么情况下把局部变量定义为局部静态变量

一次定义2个int类型局部变量,这两个局部变量的地址为啥相差12个字节?