簡體   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