百科问答小站 logo
百科问答小站 font logo



C/C++ 数组大小需要是2的倍数吗? 第1页

  

user avatar   pansz 网友的相关建议: 
      

对性能没有影响,但使用2的幂次倍作为分配大小是一个好的编程习惯

为什么呢?因为2的幂次倍分配能够避免内存空洞。

简单的说:内存池机制通过将所分配的内存提升到2的幂次倍来避免内存空洞。

如果你的内存分配器有内存池机制,那么即使你分配了小于2的幂次倍的内存空间,实际占用的内存空间也还是2的幂次倍(比如分配1000字节实际占用1024字节空间)。这种情况下,用不用2的幂次倍不改变性能,但这样用更加划算。

如果你的内存分配器没有内存池机制,那么手工使用2的幂次倍能够有效减少内存空洞,提升内存使用效率。

所以,总的来说,使用2的幂次倍进行内存分配,在各种场合下,都只有好处没有坏处,是好的编程习惯




  

相关话题

  在手机上C语言编译器运行while(system(“pause”))为什么会导致手机重启? 
  随着互联网的崛起,还有必要学习 C++ 吗?貌似 C++ 越来越难找工作了... 
  有哪些见过的时间复杂度为无限大的算法? 
  在C++中,为什么部分程序员喜欢在循环中写‘++i’而不是‘i++’? 
  Android 会像 Windows 一样,打败 iOS 吗? 
  为什么说C++的main函数最后不写 return 0; 是不好的习惯? 
  c#多播或event监听太多后gc和时间都会爆炸,那么比起List<Action>存在的意义是什么? 
  C++ 和Java 的 double 类型都是 8 字节,为何 C++ 存不下 3.1415926 ? 
  LeetCode上 C++ 官方题解为什么有很多没有写delete,不会内存泄漏么?面试时也可以么? 
  为什么C++中virtual要翻译为虚函数? 

前一个讨论
有哪些风格特别且大胆的 CG 画手?
下一个讨论
现实核武国家有没有猜疑链?如果有怎么没有爆发核战争?





© 2025-03-21 - tinynew.org. All Rights Reserved.
© 2025-03-21 - tinynew.org. 保留所有权利