[英]Using a typedef const struct with a pointer
好的,我一直在尝试使用特定结构时遇到重大问题。 让我们开始吧:
typedef const struct x
{
....
} *y;
然后我有另一个具有y的结构,如下所示:
struct Z
{
...
y someName;
};
现在,我的主要问题是我无法弄清楚如何使用它来为someName分配某些内容。
如果我用x做类似的事情
struct x anotherName =
{
assignedThing
};
试图做类似的事情
Z.someName = anotherName;
无法说不能将anotherName强制转换为y类型。
显然,我无法尝试通过ay作弊,然后从anotherName分配特定部分,因为y是一个const结构,以后无法更改。
我也做不到
struct y anotherName
失败了,我做不到
y anotherName =
{
};
因为它声称当原始结构像14时,不止一个项目太多而无法初始化。
坦率地说,我在这里迷路了。 无论如何,我有没有实际创建y的定义实例或使用x的当前定义实例? 我是否缺少明显的东西(我感觉自己)? 我不在可以重写任何原始结构或从const更改它的位置,也不能删除它的指针这一事实,因此在这里的任何见识都将受到赞赏。
我认为这里的主要问题是您混淆struct x
和y
的类型。
struct x
是一个struct
而y
是一个pointer to struct
的pointer to struct
。
所以你不能分配Z.someName = anotherName;
因为anotherName
的类型为struct x
,someName的类型为y
。
你应该做
Z.someName = &anotherName
同样,您不能将结构直接分配给指针类型变量
y anotherName =
{
};
您创建一个struct x
变量,并将其地址分配给y
类型的变量:
struct x someOtherName =
{
};
y anotherName = &someOtherName;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.