KAc*_*ion 3 c malloc free offset
它是保证,结构的第一个元素的偏移是0吗?为了更准确,我们考虑一下
struct foo { int a; double b; }; struct foo *ptr=malloc(sizeof(struct foo)); int *int_ptr = &ptr->a; free(int_ptr)
在任何操作系统或任何其他因素下,它是否始终有效?
Alo*_*ave 6
是的,它是有保证的.会给你一个标准报价,让我查找.
C99标准:§6.7.2.1
第12段
在结构对象中,非位字段成员和位字段所在的单元具有按声明顺序增加的地址.指向适当转换的结构对象的指针指向其初始成员(或者如果该成员是位字段,则指向它所在的单元),反之亦然.结构对象中可能存在未命名的填充,但不是在其开头.
归档时间:
13 年,6 月 前
查看次数:
126 次
最近记录: