如何在C?
中的函数中动态创建struct数组结构:
typedef struct Track {
char artist[LONGSTR];
char file[LONGSTR];
int id;
int isAlbum;
char name[LONGSTR];
int pos;
char title[LONGSTR];
int time;
} Track;
功能:
int
processplaylist (struct Track** tracks, char* resp)
{
//count the tracks to return
//allocate space for the resulting tracks
*tracks = mem_alloc (count * sizeof (struct Track));
//process each track
return count;
}
用法:
char playliststr[] = "file: some-mp3\nTitle: Dire Straits - Romeo And Juliet\nName: TheRadio\nPos: 0\nId: 12\nOK\n"
struct Track* tracks = NULL;
int count = mpd_processplaylist(&tracks, playliststr);
在该功能中,轨道得到很好的处理,并且返回语句跟踪指向正确位置的点以进入轨道。我见过的大多数问题都是关于值的数组,而不是结构。 This answer返回一个结构数组,但我想返回计数(样式问题)并通过参数返回数组。
出了什么问题?函数返回后,count具有正确的值,并且track仍为NULL。