[英]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.