對不起,如果標題有點混亂,作為 CI 的初學者真的不知道還能怎么說。所以我試圖創建一個單鏈表,其中每個節點不僅有一個指向下一個節點的指標,而且還有一個指向從該節點開始的子鏈表的指標。基本上每個節點都有自己的鏈表。在嘗試創建此 LL 時,我有一個結構體,其中包含每個節點應具有的特征,例如指向下一個節點的指標和指向源自它的資料鏈表的指標。我聽說你實際上能夠創建一個結構體。我想創建第二個結構來構造節點所保存的資料型別:
struct NODE{
void* data;
struct Node* next;
}NODE;
typedef struct stuff{
int data1;
int data2;
int data3;
}STUFF;
我現在的問題是說我有一個來自 struct NODE 的節點,例如“NODE* node”,我將如何參考該節點的資料型別(data1、data2 等)?我試過鑄造,但不確定我是否做錯了,但像這樣:
(STUFF)node->data1= DATA1;
//where DATA1 is of course already defined to be some int
我在函式內部執行此操作,但收到錯誤“強制轉換的分配是非法的,不支持左值轉換”。
uj5u.com熱心網友回復:
關于你的演員問題......這是你如何做到的。
typedef struct Node{
void* data;
struct Node* next;
}NODE;
typedef struct stuff{
int data1;
int data2;
int data3;
}STUFF;
int main()
{
NODE *n = malloc(sizeof(NODE));
n->data = malloc(sizeof(STUFF));
STUFF *s = n->data;
s->data1 = 15;
printf("%d", ((STUFF*) n->data)->data1);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369518.html
下一篇:有沒有辦法匯出C靜態庫中的函式?
