【发布时间】:2013-01-23 01:34:51
【问题描述】:
在我的算法中,我知道使用静态数组,而不是动态数组。但我有时 达到栈的极限。我是对的,静态数组存储到堆栈中吗?
哪些参数会影响我对一个 C 程序的最大堆栈大小?
是否有很多系统参数会影响最大数组大小?最大没有。元素的数量取决于数组类型?它是否取决于总系统 RAM?还是每个 C 程序都有一个静态的最大堆栈大小?
【问题讨论】:
-
“静态数组”是什么意思?函数中的局部变量,包括数组,都存储在堆栈中。
-
我认为您可以告诉 链接器 您希望堆栈有多大,但我不确定在创建线程时它是如何工作的。不过,在台式机上大约是一兆字节。
-
另外,正如 Joachim 所说,“静态”并不代表您的想法。静态数组实际上根本不入栈,可以随心所欲。
-
您使用的是什么系统/架构,linux、OSX、windows、ARM?你能发布一小段代码吗?
-
静态数组不存储在栈中,而是存储在数据段中