我是靠谱客的博主 谦让溪流,最近开发中收集的这篇文章主要介绍实现自己的Free函数C语言高级进阶学习内容学习产出,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言高级进阶

实现自己的Free函数

学习内容

由于C标准库的Free函数存在一些问题,例如不会检查传入的指针是否未NULL,也不会在返回前把指针置为NULL,所以我们实现自己的Free函数。


学习产出

void safeFree(void **pp)
{
if(pp != NULL && *pp != NULL)
{
free(*pp);
*pp = NULL;
}
}
#define safeFree(p) safeFree((void**)&(p))
int main()
{
int *pi;
pi = (int *)malloc(sizeof(int));
*pi = 5;
printf("Before:pi = %pn",pi);
printf("Before:*pi = %dn",*pi);
free(pi);
printf("After:pi = %pn",pi);
printf("After:*pi = %dn",*pi);
safeFree(pi);
printf("After:pi = %pn",pi);
return (EXIT_SUCCESS);
}

运行结果如下:

最后

以上就是谦让溪流为你收集整理的实现自己的Free函数C语言高级进阶学习内容学习产出的全部内容,希望文章能够帮你解决实现自己的Free函数C语言高级进阶学习内容学习产出所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部