在標準C庫的字符串處理函數 strxxx 一系列函數中,對參數傳入NULL會導致程序崩潰。
如下代碼中,無論那個參數爲NULL,都會讓程序崩潰,所以我們必須自己對參數進行傳入前的檢查。
int main()
{
char s[10];
strlen(0); //會崩掉程序
strcmp("",0); //會崩掉程序
strcpy(s,0); //會崩掉程序
return 0;
}
目前大廠的處理方案 是對 這些函數進行封裝,先對參數進行傳入前的檢查,然後再調用這些函數。
這些東西,在面試時會遇到,比如面試官讓你寫一個 strcmp函數,看似這個函數很簡單,但是如果不對參數進行檢查,則大概率會無法通過面試