内存分配中的幻数[关闭]
Posted
技术标签:
【中文标题】内存分配中的幻数[关闭]【英文标题】:Magic number in memory allocation [closed] 【发布时间】:2015-02-15 19:30:32 【问题描述】:在学习一些编程练习(google code jam)期间,我遇到了带有静态数组分配的幻数 42,即使它们使用的索引从 1 到 16 或到 32。 例如:
bool can[42];
for (int i = 1; i <= 16; i++) can[i] = true;
我在想这可能是性能原因(内存分配块 42*32 位?)或类似的东西。 但我在谷歌上找不到任何关于此的材料,有人可以解释一下它是否与系统性问题有关,还是只有道格拉斯·亚当斯选择的魔法数字 42。
【问题讨论】:
我赌道格拉斯·亚当斯。 生命、宇宙和一切en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy 魔术#。 c++ 中的 sizeof(bool) 为 1。 bool 不是 c 中的数据类型。没有理由将其设为 42。编译器可能会将其填充到 46。 @EdHeal Dat 感觉自己变成了一个真正的老书呆子! @EdHeal 我的二极管正在疼痛...... 【参考方案1】:这个问题的答案是 42。
【讨论】:
以上是关于内存分配中的幻数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章