繁体   English   中英

C中静态分配的数组大小的限制

[英]Limit of statically allocated array size in C

这是C语言中与内存分配有关的问题。我有多个(假设5个)浮点数二维数组。 每个阵列为60x60。

从理论上讲,此信息表示在初始计算后将不会更改的静态数据。

应该将其存储为静态大小数组还是足够大以进行动态分配? 我想我不清楚堆栈的大小以及是否将诸如arr [60][60]声明仅存储在DATA节中。 这取决于机器还是代码本身? 由于堆栈内存通常对应于高级高速缓存,因此它的大小限制是多少,比如说Intel i5系列机器?

我知道这是一个非常广泛的问题,因此我很乐意参考可靠的背景资料。

所以它是5乘以60乘以60乘以4( float )? 只有72000个字节。 足够小,即使在很小的嵌入式系统中,也可以将其声明为“静态”编译时数组/矩阵。 而且,如果您使用的是普通PC(Windows,Linux,OSX),则堆栈至少为一个兆字节,可能高达8 MB,因此那里也没有问题。 同样,在一台合理的现代计算机(即最近六到七年制造的计算机)上,复制72000字节仍然足够快,您可能不会注意到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM