malloc(10)
是否分配10个字节的内存?malloc(10 * sizeof(int))
分配40个字节的内存?
就代码可用的内存而言,假设目标系统上的sizeof(int)
为4,则两个答案都是"是"。但是,适用了两个其他考虑:
-
malloc
使用少量内存来解释其分配给程序的块,从而导致某些依赖于实现的间接费用 - 内部
malloc
可以分配比代码要求更多的内存。尽管您的代码无法使用附加的内存,但对于进一步的分配而言,它变得不可用。
当您多次致电malloc
时,这将变得很重要:例如,当您致电malloc(10)
1,000,000次时,与预期的10MB malloc
的高架相比,可用内存的数量可能会降低几个额外的兆字节。