在标准C库的字符串处理函数 strxxx 一系列函数中,对参数传入NULL会导致程序崩溃。
如下代码中,无论那个参数为NULL,都会让程序崩溃,所以我们必须自己对参数进行传入前的检查。
int main()
{
char s[10];
strlen(0); //会崩掉程序
strcmp("",0); //会崩掉程序
strcpy(s,0); //会崩掉程序
return 0;
}
目前大厂的处理方案 是对 这些函数进行封装,先对参数进行传入前的检查,然后再调用这些函数。
这些东西,在面试时会遇到,比如面试官让你写一个 strcmp函数,看似这个函数很简单,但是如果不对参数进行检查,则大概率会无法通过面试