Malloc和免费功能(优化你的记忆)

时间:2016-11-24 19:01:44

标签: c memory malloc free

所以我试图在我的代码中优化我的记忆管理。

以下是代码示例:

    Image image;

    int main(int argc, char *argv[])
    {

    image = (Image) malloc(sizeof (struct image));

    image = doSomething(image);


    }

    Image doSomething(Image imageInput) {
    Image imageResult;

    imageResult = (Image) malloc(sizeof (struct image));

    //Code does something here 

    return imageResult;

    }

什么时候使用free();在我的例子中?

Image image;

int main(int argc, char *argv[])
{

image = (Image) malloc(sizeof (struct image));

image = doSomething(image);


 free(image);
}

Image doSomething(Image imageInput) {
Image imageResult;

imageResult = (Image) malloc(sizeof (struct image));

//Code does something here 

free(imageInput);
return imageResult;

}

我唯一能看到的是" imageInput"在函数结束时被假设被删除的变量。

释放函数变量是否过度?

在应用程序执行结束时也是如此。

1 个答案:

答案 0 :(得分:0)

最后,我使用valgrind来分析任何内存泄漏。

非常有帮助指导某人完成此任务。帮助我学习何时做免费()和在哪里。

这是一个有用的链接: Valgrind website