【问题标题】: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。

【问题讨论】:

  • 我赌道格拉斯·亚当斯。
  • 魔术#。 c++ 中的 sizeof(bool) 为 1。 bool 不是 c 中的数据类型。没有理由将其设为 42。编译器可能会将其填充到 46。
  • @EdHeal Dat 感觉自己变成了一个真正的老书呆子
  • @EdHeal 我的二极管正在疼痛......

标签: c++ c memory-management


【解决方案1】:

这个问题的答案是 42。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2021-11-27
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多