根据结构体里面元素的某个地址计算机构体地址
2011-12-09 19:00
295 查看
#include <stdio.h>
#include <stdlib.h>
#define CONTAINER_OF(ptr, type, member)((type *)((char *)ptr - (char *)&((type*)0)->member))
#define ARRAY_SIZE(a)(sizeof(a) / sizeof((a)[0]))
struct user_data
{
char a;
char b;
int c;
};
int main(int argc, char *argv[])
{
struct user_data *tmp;
char *h;
struct user_data = (struct user_data *)malloc (sizeof(struct user_data));
if(p_data ==NULL)
{
printf("no memory!\n");
return -1;
}
h = &p_data->b;
printf("p_data's address is 0x%p\n", p_data);
printf("h's address is 0x%p\n", h);
tmp = CONTAINER_OF(h, struct user_data, b);
printf("tmp's address is 0x%p\n", tmp);
return 0;
}
#include <stdlib.h>
#define CONTAINER_OF(ptr, type, member)((type *)((char *)ptr - (char *)&((type*)0)->member))
#define ARRAY_SIZE(a)(sizeof(a) / sizeof((a)[0]))
struct user_data
{
char a;
char b;
int c;
};
int main(int argc, char *argv[])
{
struct user_data *tmp;
char *h;
struct user_data = (struct user_data *)malloc (sizeof(struct user_data));
if(p_data ==NULL)
{
printf("no memory!\n");
return -1;
}
h = &p_data->b;
printf("p_data's address is 0x%p\n", p_data);
printf("h's address is 0x%p\n", h);
tmp = CONTAINER_OF(h, struct user_data, b);
printf("tmp's address is 0x%p\n", tmp);
return 0;
}
相关文章推荐
- 根据结构体里面元素的某个地址计算机构体地址
- 考考你:根据结构体变量地址反推结构体首地址
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- 使用php根据起始ip地址和掩码 计算广播地址(网段结束地址)
- 如何根据IP地址和子网掩码,计算其所在子网的网络地址,主机地址和广播地址
- 已知某结构体变量中某一元素的地址求结构体变量的地址。
- 计算数组里面不重复元素个数
- PHP 根据身份证号码,获取性别、获取生日、计算年龄、获取地址、获取生肖、获取星座、以及判断是否是身份证号
- 在特定的屏幕宽度下,合理排版页面元素。根据width进行计算得出
- 由结构体成员地址计算结构体地址——list_entry()原理详解
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- 结构体计算某个field的地址偏移
- 根据IP地址与子网掩码快速计算网络地址与广播地址
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- Offsetof 计算struct元素在struct内部地址偏移量
- 二叉树计算以结构体数组元素为变量的表达式
- 根据路由器MAC地址精确计算PIN码第八位的方法
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解 (转)
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解