小编bum*_*ble的帖子

家庭作业:释放结构中的数据

我只是学习使用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是一些用户定义的变量和方法,但我觉得它们与我的问题无关.我知道要求别人为我做作业是错误的,如果可能的话,我只想推动正确的方向.

c struct

5
推荐指数
1
解决办法
120
查看次数

标签 统计

c ×1

struct ×1