内存泄漏是由全局变量引起的吗?

时间:2010-03-25 07:45:50

标签: iphone objective-c

当我检查我的应用程序内存泄漏时,它显示12个泄漏。这有什么影响?

我使用了如下所示的全局变量

#import "file1.m"

int num;

#import "file2.m"

extern int num;
num = 10;

这会导致内存泄漏吗?

任何人都请帮忙。我是编程的初学者。

4 个答案:

答案 0 :(得分:3)

不,你不在这里分配任何动态内存,所以它(绝对是)不能泄漏。

如果使用“泄漏”工具运行应用程序,您可以看到发生泄漏的行 - 窗口底部有“扩展详细信息”按钮,显示内存实际泄漏(或怀疑泄漏)的调用堆栈。 / p>

答案 1 :(得分:3)

周围有一个全局int不应该算作或导致内存泄漏。更典型的全局计数内存泄漏是,如果您有一个指向单个对象的全局指针,该对象初始化一次,然后在该进程的生命周期内挂起。即使它们在技术上不是,它们也会显示为内存泄漏。

我唯一关注的漏洞与非全局非静态变量有关,因为这些漏洞往往是“真正的”漏洞。

答案 2 :(得分:2)

我非常怀疑。内存泄漏是动态分配(换句话说,运行时分配而不是编译时),您忘记释放它们。像num这样的全局变量应该在可执行文件的持续时间内存在,因此它们不应被视为泄漏。

我怀疑你必须去别处看看。

也许如果您从泄漏检查器发布了输出,我们可以提供更多帮助。

答案 3 :(得分:0)

你有XCode 3.2吗?也许你看看静态分析器(Build and Analyze)。它通常可以帮助您查找内存泄漏。