【发布时间】:2025-12-20 12:35:12
【问题描述】:
假设我有一个来自双向链表的节点
typedef struct node
{
struct node *pPrev;
struct node *pNext;
struct record *data;
}Node;
以及以下名为 record 的结构,其中一个名为 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工作??? -
@barakmanos makeNode 是一个整数链表(我理解)。我不知道如何为数据为结构的链表创建 makeNode(在我的情况下为记录和歌曲长度)
标签: c struct linked-list malloc