【发布时间】:2011-05-08 15:40:18
【问题描述】:
我想要一个关于如何使用泄漏工具的简单示例。
见:
#include <iostream>
int main (int argc, char * const argv[]) {
char *buf = new char[100];
sprintf(buf, "Hello, World!\n");
// insert code here...
std::cout << buf;
return 0;
}
上面的代码(简单示例)应该会泄漏分配在 *buf 上的指针,对吧?
使用 valgrind,我会在运行后发现这很容易
但我只是无法在 Leaks 程序中找到如何做到这一点
我试着把 sleep(60) 放了,但对我还是不友好...
谢谢,
乔纳森
【问题讨论】:
-
问点什么。此外,显示的代码中没有泄漏。
-
他是说因为他没有释放 buf,所以这是一个泄漏,但是由于程序在我不知道这是否算作泄漏之后立即终止,因为内存将立即恢复。我也认为应该是 'char* buf' 而不是 'char buf'
-
@robev 好电话。我错过了给 buf 的糟糕分配。我的眼睛读到它是在堆栈上声明的。不过,他什么也没问。
-
我想解释一下如何在“泄漏”工具上找到该泄漏。我只是输入了那个代码,以为你会明白我的意思......当然它应该是 char *buf,我的意图是创建一个内存地址,而不是释放它以查看 Leaks 是否会像 Valgrind 那样告诉我.对不起我的英语......
标签: c++ xcode memory memory-leaks instruments