在进行内存指针运算时,如何避免valgrind报告mem丢失?

时间:2015-03-22 10:25:05

标签: c valgrind memcheck

我在我的软件上使用valgrind的memcheck;但我在这方面有问题:出于某种原因,我们将在存储之前转换malloced指针,并在使用时转换回来。就像这样:

char* ptr = (char*)malloc(1);
ptr = ptr + 1;
......
origin_ptr = ptr -1;
free(origin_ptr);

ptr = ptr + 1; <------ this will make valgrind to report memory lost;

1 个答案:

答案 0 :(得分:0)

这是valgrind无法正确检测到的东西。因此,您必须编写一个忽略相应函数的抑制文件。

此外,通常不鼓励你做你正在做的事情,因为free特别要求你所获得的是你malloc所获得的东西;现在+1-1对我来说似乎也是一个NOP,但我怀疑你在后面做了一些更复杂的事情。