c - C 中允许的静态数组的最大大小是多少?

标签 c arrays stack max

在我的算法中,我知道使用静态数组,而不是动态数组。但我有时 达到栈的极限。我说得对吗,静态数组存储在堆栈中?

哪些参数会影响一个 C 程序的最大堆栈大小?

是否有很多系统参数会影响最大数组大小?做最大没有。元素的数量取决于数组类型?它取决于总系统 RAM 吗?还是每个 C 程序都有一个静态的最大堆栈大小?

最佳答案

Am I right, that static arrays are stored to the stack?

不是,static数组是存放在静态存储区的。 自动(即在函数内部声明的,没有static 存储说明符)分配在堆栈上。

Which parameters affect my maximum stack size for one C program?

这取决于系统。在某些操作系统上 you can change stack size programmatically .

由于自动存储分配而导致堆栈空间用完是一个明显的迹象,表明您需要重新考虑您的内存策略:如果重入不是问题,您应该在静态存储区域分配缓冲区,或者使用动态分配对于最大的数组。

关于c - C 中允许的静态数组的最大大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753036/

相关文章:

C: Scanf 字符串,字段跳过器 "%*"应用于 while 循环中的转换说明符

javascript - 如何在javascript中创建类似对象的数组

c++ - 错误 : name lookup of 'i' changed for ISO 'for' scoping

java - 使用回收器在 android Studio 中获取 NullPointerException

c - 我有一个函数,它有 int a 和 int b 我所要做的就是找到最大值

c - 我的程序返回了错误的值

c - 标准C : Storing arrays in off-chip RAM

javascript - 堆叠 div 并使用切换来显示/隐藏

C++ 一些堆栈问题

c - 如何在从 Linux 启动时将 NCurses 输出定向到串行终端?