int fun(int * arg) { if(arg==NULL) { return -1; } // do something }
如果是自己的函数,判断指针为NULL的意义不大,更好的是直接用assert(p!=NULL),而不是仅仅检查一下参数为空就返回。一般来说,参数为空,意味着调用端出了问题,不应该就这么轻易放过。如果仅仅是返回值代表错误,但调用者又没有检查返回值,这就更有问题。
void close_file(FILE *fp){ if(fp!=NULL){ .... } } void open_file(FILE *fp){ if(fp==NULL){ close_file(fp); //打开文件。。。 } }
错了 一定要判断是否为空,而是释放之后一定要置空
就算在函数体内判断是否为NULL,调用该函数时也需要判断函数返回值
[quote=引用 1 楼 xian_wwq 的回复:] 这是一种预防性的处理, 保证当指针为空时不会引发崩溃。 因为函数有可能被其他人调用, 可能没有进行完整的初始化。
这是一种预防性的处理, 保证当指针为空时不会引发崩溃。 因为函数有可能被其他人调用, 可能没有进行完整的初始化。
[quote=引用 3 楼 zxh707wk 的回复:] 就算在函数体内判断是否为NULL,调用该函数时也需要判断函数返回值
70,027
社区成员
243,244
社区内容
加载中
试试用AI创作助手写篇文章吧