请教关于struct内存的问题

outspace_observer 2008-05-22 07:50:19
typedef struct {
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的地址。
但是不知如何实现,请大家指教!
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
outspace_observer 2008-05-22
  • 打赏
  • 举报
回复
清楚了,谢谢Supper_Jerry

取sizeof这个结构体,然后从头算,因为b前面只有一个a

也谢谢大家的建议,思路清楚了!

结贴
maplewasp 2008-05-22
  • 打赏
  • 举报
回复
一个是没定义全的结构体,另一个是结构体中字节对齐的问题,感觉有点难哪!
Supper_Jerry 2008-05-22
  • 打赏
  • 举报
回复
取sizeof这个结构体,然后从头算,因为b前面只有一个a
outspace_observer 2008-05-22
  • 打赏
  • 举报
回复
显示b,向函数传递value的地址,显示b
问题是就是没定义全的结构体,"....."的内容未知,这是我遇见的一道笔试题
独孤过儿 2008-05-22
  • 打赏
  • 举报
回复
你把前面那个struct定义完全啊!你这样怎么获得偏移啊?

其实思想就是:声明一个结构体变量,然后把它的首地址作为基址,然后里面的每个成员都有自己所占内存字节的多少,将这个多少作为偏

移,加或者减就行了,就像用指向数组首地址的一个指针来访问数组里面的成员似的...
liubingqian 2008-05-22
  • 打赏
  • 举报
回复
你到底是想显示b还是value?向函数传递value的地址,却要显示b。

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧