指针作为参数,进行内存释放,并置为NULL(利用双重指针)
指针作为函数参数传递时只是传递了指针所指向的地址,将其赋给一个临时变量,修改的也是该地址的的内容,但是指针本身并没有修改,置NULL也只是修改的临时变量。所以需要利用双重指针才能将它传递进去进行修改,实例如下。
#include<stdio.h>
#include<stdlib.h>
void _free_p_(void **ptr)
{
if (*ptr == NULL)
return;
free(*ptr);
*ptr = NULL;
}
int main(void)
{
char *addr;
addr = (char*)malloc(10*sizeof(char));
strcpy(addr ,"test");
printf("addr = %s
",addr);
_free_p_(&addr);
if(addr == NULL)
printf("ok
");
else
printf("erro
");
return 0;
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: C++释放类的静态指针成员
- 下一篇: MySQL没有split函数的替代方法