【发布时间】:2016-10-17 02:31:39
【问题描述】:
目前我正在使用 Valgrind 来检查内存泄漏并以 Purify 作为替代方案。 Valgrind 可以找出在堆中创建但不在堆栈中创建的数组的访问冲突。
char* a = static_cast<char*>(malloc(sizeof(char) * 5));
a[7] = 'c';
printf("%c\n", a[7]);
free(a);
以上代码中Valgrind点无效读写,但以下代码中没有。
char a[5] = {0};
a[7] = 'c';
printf("%c\n", a[7]);
Purify 能否识别出这两个代码块的访问冲突?
【问题讨论】:
标签: c++ memory-leaks valgrind access-violation purify