请教关于struct内存的问题
时间:2008-05-22 08:59:11
来源:论坛整理 作者: 编辑:chinaitzhe
int a;
int b;
........
unsigned int value;
........
}test;
void main()
{
test v;
v.b = 123;
v.value = 234;
printb(&v.value);
}
结果输出123,
void printb(int *a)
{
???
}
问printb的实现?
我认为其实就是如何通过&v.value的地址,得到v.b的地址。
但是不知如何实现,请大家指教!
网友回复:你到底是想显示b还是value?向函数传递value的地址,却要显示b。
网友回复:你把前面那个struct定义完全啊!你这样怎么获得偏移啊?
其实思想就是:声明一个结构体变量,然后把它的首地址作为基址,然后里面的每个成员都有自己所占内存字节的多少,将这个多少作为偏
移,加或者减就行了,就像用指向数组首地址的一个指针来访问数组里面的成员似的...
网友回复:显示b,向函数传递value的地址,显示b
问题是就是没定义全的结构体,"....."的内容未知,这是我遇见的一道笔试题
网友回复:取sizeof这个结构体,然后从头算,因为b前面只有一个a
网友回复:一个是没定义全的结构体,另一个是结构体中字节对齐的问题,感觉有点难哪!
网友回复:清楚了,谢谢Supper_Jerry
取sizeof这个结构体,然后从头算,因为b前面只有一个a
也谢谢大家的建议,思路清楚了!
结贴
关键字:请教,struct,内存,问题,
上一篇:有人使用过libit函数库吗
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面