以双重指针传入的参数请勿置NULL,除非置NULL前记得释放指针申请的内存,否则将会造成内存泄漏。
类似情况如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(char **ppchtmp)
{
// 1. call destroy_func1(*ppchtmp);
// 2. call destroy_func2(*ppchtmp);
*ppchtmp = NULL;
}
int main()
{
char * pch = NULL;
pch = (char *)malloc(5);
if(pch == NULL)
{
printf("\n=============NULL\n");
}
func(&pch);
if(pch != NULL)
{
free(pch);
pch = NULL;
}
else
{
printf("\n warning :pointer is NULL, memory leak!! \n");
}
return 0;
}