繁体   English   中英

将typedef const结构与指针一起使用

[英]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 xy的类型。

struct x是一个structy是一个pointer to structpointer 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM