所以說,我有一個雙向鏈表分配內存以包含結構
typedef struct node
{
struct node *pPrev;
struct node *pNext;
struct record *data;
}Node;
一個節點一個節點內的命名與結構如下命名記錄結構songlength
typedef struct record
{
char *artist;
char *album;
char *song;
char *genre;
struct songlength *length;
int played;
int rating;
}Record;
typedef struct songlength
{
int mins;
int secs;
}SongLength;
如何我是否會爲這樣的事情分配內存?我知道如何在列表的每個節點中爲單個int做一個簡單的malloc/make節點。
Node *makeNode (int newData)
{
Node *pMem = NULL;
pMem = (Node *) malloc (sizeof (Node));
pMem -> data = newData;
pMem -> pNext = NULL;
return pMem;
}
在目前的狀態,我不知道如何做到這一點。因爲我所有的嘗試都會導致混亂的記憶。
你的問題(和代碼)沒有任何意義。當'pMem - > data'的類型是'struct record *'並且'newData'的類型是'int'時,如何期望'pMem - > data = newData'工作? – 2015-02-07 11:22:05
@barakmanos makeNode是一個整數的鏈表(我不瞭解)。我不知道如何爲鏈接列表創建一個makeNode,這個鏈接列表的數據是一個結構體(在我的例子中是record和songlength) – user3482104 2015-02-07 21:01:23