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

C语言高级进阶

实现自己的Free函数

学习内容

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


学习产出

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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语言高级进阶学习内容学习产出的全部内容,更多相关实现自己内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部