我只是学习使用valgrind和c,并且在尝试从结构中释放数据时我有一个无效的free()输出.我相信这是因为数据没有正确地从结构中释放出来.
这是我的结构:
typedef struct song_
{
char *artist;
char *title;
mtime *lastPlayed;
} song;
Run Code Online (Sandbox Code Playgroud)
这是试图释放它的功能:
void songDelete(song *s)
{
//artist
free(s->artist) ;
//title
free(s->title) ;
//time
if(NULL != s->lastPlayed)
mtimeDelete(s->lastPlayed) ;
//song
free(s);
}
Run Code Online (Sandbox Code Playgroud)
mtime和mtimeDelete是一些用户定义的变量和方法,但我觉得它们与我的问题无关.我知道要求别人为我做作业是错误的,如果可能的话,我只想推动正确的方向.