【发布时间】:2012-04-03 11:27:12
【问题描述】:
我需要帮助将*user_playlist 指向播放列表节点。我该怎么做?
struct playlist_ {
int album;
int track_num;
struct playlist_ *next;
};
typedef struct playlist_ playlists;
struct users_ {
int user_ID;
playlists *user_playlist;
struct users_ *next;
};
typedef struct users_ users;
p_users = (users *)malloc(sizeof(users *));
p_users -> user_ID = account_number;
head_users = p_users;
head_users -> next = NULL;
users_pointer = head_users;
p_playlists = (playlists *)malloc(sizeof(playlists));
curr_playlists = p_playlists;
curr_playlists -> album = NULL;
curr_playlists -> track_num = NULL;
curr_playlists -> next = NULL;
curr_users -> user_playlist = curr_playlists;
users *head_users,*curr_users,*p_users,*users_pointer;
playlists *head_playlists,*curr_playlists,*p_playlists,*playlist_pointer;
【问题讨论】:
-
我在某处遇到总线错误(核心转储)
-
我认为你需要写 malloc(sizeof(users)) 而不是 malloc(sizeof(users*))。 'sizeof(users*)' 表示指向'users'的指针的大小,当你需要'users'的大小时。
-
@BinyaminSharet 当我在 gdb 上运行它时,我在这里
curr_users -> user_playlist = curr_playlists;
标签: c pointers linked-list structure