最近做测试,有点不理解,在这请假
我用malloc申请内存块, 然后 在代码后端 free ,并设置NULL,
编译,运行没有任何问题,
但用vglgrind 来检检测, 告诉我有内存泄露。 并且所错误应用了free,
这是为什么? 在main里不能使用 free吗?,编译也没报错呀。
int main(int argc char **argv){
char *a=(char *)malloc(sizeof(char)*100);
if(!a)
{
exit(-1);
}
memset(a,0,sizeof(char)*100);
.....
...
free(a);
a=NULL;
valgrind返回错误是
Invalid free()/delete/delete[]/realloc()
.....
....
LEAK SUMMARY:
definitely loast: 100bytes in 1 blocks
这是为什么? 急。