標準C庫的字符串處理函數 strxxx 一系列函數中,對參數傳入NULL會導致程序崩潰

在標準C庫的字符串處理函數 strxxx 一系列函數中,對參數傳入NULL會導致程序崩潰。

如下代碼中,無論那個參數爲NULL,都會讓程序崩潰,所以我們必須自己對參數進行傳入前的檢查。

int main()
{
    char s[10];

    strlen(0);        //會崩掉程序
    strcmp("",0);    //會崩掉程序
    strcpy(s,0);    //會崩掉程序
    return 0;
}

目前大廠的處理方案 是對 這些函數進行封裝,先對參數進行傳入前的檢查,然後再調用這些函數。

這些東西,在面試時會遇到,比如面試官讓你寫一個 strcmp函數,看似這個函數很簡單,但是如果不對參數進行檢查,則大概率會無法通過面試

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章