这是与C中的内存分配相关的问题。我有一个数字(比方说5)2维浮点数组。每个阵列都是60x60。
理论上,此信息表示在最初计算后不会更改的静态数据。
这应该存储为静态大小数组还是足够大以便动态分配?我想我不清楚堆栈的大小以及arr [60][60]
之类的声明是否将仅存储在DATA
部分中。这取决于机器还是代码本身?由于堆栈内存通常对应于高级缓存,因此对于此问题的大小限制是什么,比如英特尔i5系列机器?
我知道这是一个非常广泛的问题,所以我很乐意参考可靠的背景资料。
答案 0 :(得分:1)
所以这是5次60次60次4次(float
的大小)?那只有72000字节。小到足以将其声明为“静态”编译时阵列/矩阵,即使在非常小的嵌入式系统中也是如此。如果你使用普通的PC(Windows,Linux,OSX),那么堆栈至少是一兆字节,可能多达8 MB,所以也没问题。此外,在一台合理的现代计算机上(即最近六七年左右的计算机)复制72000字节仍然足够快,你不会注意到它。