从函数返回struct的动态数组

时间:2015-08-14 01:58:35

标签: c pointers struct

如何在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。

0 个答案:

没有答案