请教:关于结构体在内存中地址的分配。

叁叁玖玖 2012-02-24 08:44:21

struct DList
{
DList *first;
DList *last;
}D;

struct DList_Data
{
int a0;
int a1;
.
.
.
DList *k;
.
.
.
int an;
};
int main()
{
struct DList *p = &D;
.
.
return 0;
}

仅靠以上条件,如何cout出结构体DList_Data中各个数据的值
...全文
274 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
redshiliu 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aaseh 的回复:]
傻帽




1
[/Quote]
此人是大傻冒,鉴定完毕!
hu7324829 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 twhtwhtwhtwh 的回复:]

引用 3 楼 kuyucman 的回复:
D中没有struct DList_Data数据,怎么求?喝醉了

在给结构体分配内存时,是连续分配的吧;p指向的是结构体DList的首地址,DList大小为8字节。这两个结构体应该分配在栈上吧,DList_Data 的首地址是有办法求出来的吧。DList_Data中全是4字节变量,那么他们的地址都可以求出来,那他们的值是否可以取出。
纯属个人想……
[/Quote]
可以取, 但是未初始化就是随机值。
叁叁玖玖 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kuyucman 的回复:]
D中没有struct DList_Data数据,怎么求?喝醉了
[/Quote]
在给结构体分配内存时,是连续分配的吧;p指向的是结构体DList的首地址,DList大小为8字节。这两个结构体应该分配在栈上吧,DList_Data 的首地址是有办法求出来的吧。DList_Data中全是4字节变量,那么他们的地址都可以求出来,那他们的值是否可以取出。
纯属个人想法。。。有错请纠正
quwei197874 2012-02-25
  • 打赏
  • 举报
回复
楼主写反了,应该在data里存数据变量,在结构体里引用;请楼上的不要人身攻击,谁都有不会的时候,你可能以为这个问题很简单,你遇到的难题在牛人前也是这样的
aaseh 2012-02-25
  • 打赏
  • 举报
回复
傻帽




1
东莞某某某 2012-02-25
  • 打赏
  • 举报
回复
D中没有struct DList_Data数据,怎么求?喝醉了
水蓝_aimarcby 2012-02-25
  • 打赏
  • 举报
回复
字节对齐的细节和编译器实现相关,一般满足三个准则:
一、结构体变量的首地址能够被其最宽基本类型成员大小与对齐基数中的较小者所整除。
二、结构体每个成员相对于结构体首地址的偏移量(offset)都是该成员大小与对齐基数中的较小者的整数倍,如有需要编译器会在成员之间加上填充字节。
三、结构体的总大小为结构体最宽基本类型成员大小与对齐基数中的较小者的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。
downmooner 2012-02-24
  • 打赏
  • 举报
回复
代码信息不够,没法帮忙。

69,364

社区成员

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

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