Meh*_*dad 3 c memory-alignment calloc
我想知道,大多数实现calloc将大小视为一个对齐,并将其四舍五入到下一个支持的粒度?
如果是这样,那么它们是否会向下舍入到2的下一个幂,或者它们是否会转到下一个8或16的倍数?
如果calloc保持参数相同,那么它甚至如何工作?那你的数据不会不对齐吗?
谢谢!
sizeof被定义为产生数组中对象的大小 - 换句话说,它已经考虑了正确对齐所需的任何填充.因此,如果sizeof(foo)某个对象为23 foo,那么您的处理器必须是字节对齐的.(另一方面,如果你通过23,因为你认为这是一个很好的传递价值,那么祝你好运;你是独自一人.)