【发布时间】:2013-08-09 20:10:13
【问题描述】:
所以我遇到的一个主要问题是确定 C/C++ 中的给定函数是否进行内存分配。我经常使用外部库,其中一些具有返回指向新对象的指针的函数。是否有一些基本的设计范例或约定可以让我提前知道是否分配了内存?
似乎任何返回指向新对象的指针的函数都必须分配内存,但似乎并非总是如此。例如,fopen 没有
编辑:需要明确的是,我无权访问源代码,所以我不能只检查它是使用 new 还是 malloc 等。
【问题讨论】:
-
大多数库都有删除它们创建的对象的功能。我不确定你提出问题的动机。您可以使用 valgrind 查找内存泄漏。
-
没有可移植的方法来确定指针是从
new、malloc还是自动存储中获得的。如果库没有记录谁负责释放内存,那么它就是垃圾。
标签: c++ c memory memory-leaks