c-这个malloc会是第二个结构吗



p = (users *)malloc(sizeof(users));也会为播放列表结构创建内存吗?此外,我如何使用p引用播放列表.album?

struct playlist_ {
  int album;
  int track_num;
  struct playlist_ *next;
};
struct users_ {
  int user_ID;
  struct playlist_ playlist;
  struct users_ *next;
};
typedef struct playlist_  playlists;
typedef struct users_ users;
users *p;
p = (users *)malloc(sizeof(users));

p = (users *)malloc(sizeof(users));也会为播放列表结构创建内存吗?

playlistusers_的成员,因此它构成了分配空间的一部分。所以回答你的问题:是的。

[顺便说一句,你不需要(也不应该)投射malloc的结果。]

此外,我如何使用p引用播放列表.album?

取决于你所说的"参考"是什么意思。假设你的意思只是"访问",那么这个:

p->playlist.album
是的。struct users_包含struct playlist_实例,因此为前者分配内存也将为后者保留空间。

另一方面,如果struct users_包含指向struct playlist_指针,则在为前者分配内存之后,必须为后者分配内存。

要参考playlist.album,请使用p->playlist.album

相关内容

  • 没有找到相关文章

最新更新