【发布时间】:2013-10-03 09:35:34
【问题描述】:
我用valgrind 和--leak-check=full 检查了以下C++ 代码,它说没有内存泄漏。这是为什么呢?
char *p = new char[256];
delete p;
据我所知new[] 应该与delete[] 匹配。
【问题讨论】:
-
未定义的行为是未定义的,包括它可以工作。
-
难道 valgrind 不应该足够聪明地指出这一点吗?这是我可以为内存泄漏编写的最简单的测试,我希望至少有一个警告......
-
@DanLincan:没有内存泄漏。类似 lint 的工具可能会捡起它。
-
@DanLincan:你可能需要一个静态分析器来解决这个问题,它通常需要比大多数编译器都费心去追踪它的元数据。
-
valgrind memcheck 确实注意到了这一点,但没有将其归类为泄漏。
标签: c++ memory-leaks valgrind