当我们使用malloc()分配内存时,应该给出大小为2的大小吗?还是我们只给出我们需要的尺寸?
喜欢
//char *ptr= malloc( 200 );
char *ptr= malloc( 256 );//instead of 200 we use 256如果给出两种力量的大小更好,那是什么原因呢?为什么更好?
谢谢
编辑
我之所以困惑,是因为我引用了乔尔博客回到基础的话
智能程序员总是通过分配大小为2的内存块来最小化malloc的潜在分发。(你知道,4字节、8字节、16字节、18446744073709551616字节等等)。出于任何玩乐高游戏的人都应该直观的原因,这将尽可能减少自由链中出现的奇怪碎片的数量。虽然这看起来像浪费空间,但也很容易看出,它如何从来不浪费超过50%的空间。所以你的程序使用的内存不超过它所需内存的两倍,这没什么大不了的。
对不起,我早该把上面的报价贴出来。我很抱歉!
到目前为止,大多数回复都说,用两种方式分配内存是个坏主意,那么在哪种情况下,最好遵循Joel关于malloc()的观点呢?他为什么这么说?以上引述的建议现在是否过时了?
请解释一下。
谢谢
https://stackoverflow.com/questions/3190146
复制相似问题