为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr;特意加入这句有什么作用呢?因为如果ptr指针本身就为空的话,直接返回它不也是空么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 22:21:24

为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr;特意加入这句有什么作用呢?因为如果ptr指针本身就为空的话,直接返回它不也是空么?
为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr;
特意加入这句有什么作用呢?因为如果ptr指针本身就为空的话,直接返回它不也是空么?

为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr;特意加入这句有什么作用呢?因为如果ptr指针本身就为空的话,直接返回它不也是空么?
if(NULL == ptr)
return NULL;
这样的语句,是为了程序的稳定性和健壮性.
因为如果ptr=NULL,下面的语句对其进行操作,会引起程序奔溃.
用常用的一个例子,举例:
Strcpy函数原型如下:
char *strcpy(char *strDest,const char *strScr)
{
char *address=strDest;
assert((strDest != NULL) && (strScr != NULL));//这一句的意义和 if(NULL == ptr)的意义基本一致.
while(*strScr) //是while(*strScr != ’\0’)的简化形式;
{
*strDest++ = *strScr++;
}
*strDest = '\0'; //当strScr字符串长度小于原strDest字符串长度
return address; //时,如果没有改语句,就会出错了.
}

为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr;特意加入这句有什么作用呢?因为如果ptr指针本身就为空的话,直接返回它不也是空么? “NULL”为什么在计算机中表示空值? 为什么总提示warning C4005: 'NULL' : macro redefinitionwarning C4005: 'NULL' : macro redefinition如题 在什么头文件中包含NULL? 煤气厂在家用煤气中为何特意加入一些有难闻气味的气体,目的是什么哈 if (results = null && results.size() > 0)为什么!= null还要size() > 0 在标准C中time函数的参数有什么作用?比如time(NULL);那把NULL传给time是干什么用的? SQL存储过程中,if判断语句中有多个判断条件时,要用括号括.if(@rq2 is null or @rq2!=@a11)if @rq2 is null or @rq2!=@a11 阅读“冬日雏菊自芬芳”第三自然段,请问小雏菊生长在一个怎样的环境中?作者为什么要特意写出这样的环境? 头结点的指针为空是什么情况,在一段程序中有这样的语句,if(head==null||head->next==null)head->next==null这句话的意思知道是第一个结点为空,即空链表,但是head==null这句话又代表什么意思呢,既然设置 VS中的C环境已将如何返回空值,因为NULL已被定义为0我定义了一个函数,需要返回顺序表的类型,出错时返回空值(NULL),但在VS的C++环境中提示#define NULL 0,不能返回NULL值,此时该怎么办系统定义 在水泥生产中为什么要加入石膏呢?为什么? #define SAFE_RELEASE(P){if(p){(p)->Release();(p)=(NULL);}}这宏在我使用的时候为什么提示 p未定义呢? 煤气中特意加入的气体是什么是甲硫醇吗 关于 excel 中的 iif 函数的运用.有点难!我想制作一个工资表格中计算个税基数的表格,但是在运用 if 函数时,在括号中要用到公式,IF 函数只能判断 真假,我一旦加入公式就无法读取.各位大侠帮 if ((fp==fopen(filename,w))==NULL) 改为 if ((fp=fopen(filename,w))==NULL) 为什么改完之后就会行 在乙酰苯胺的合成试验中为什么要加入活性炭?为什么要稍冷时加入? q==NULL和q->front==NULL分别是什么意思原文为if(q==NULL||q->front==NULL)printf( 队列为空!没有队顶元素! );具体区别在哪? 大学几何代数问题.为什么要特意提出A可逆?