錯誤情況簡單

2021-08-13 19:25:24 字數 1175 閱讀 1253

errno、perror() 和 strerror()

c 語言提供了 perror() 和 strerror() 函式來顯示與 errno 相關的文字訊息。

perror() 函式顯示您傳給它的字串,後跟乙個冒號、乙個空格和當前 errno 值的文字表示形式。

strerror() 函式,返回乙個指標,指標指向當前 errno 值的文字表示形式。

可以使用多種方式來輸出錯誤訊息,在這裡使用函式來演示用法。另外有一點需要注意,應該使用 stderr 檔案流來輸出所有的錯誤。

#include

#include

#include

extern int errno ;

int main ()

else

return 0;

}當上面的**被編譯和執行時,它會產生下列結果:

錯誤號: 2

通過 perror 輸出錯誤: no such file or directory

開啟檔案錯誤: no such file or directory

被零除的錯誤

在進行除法運算時,如果不檢查除數是否為零,則會導致乙個執行時錯誤。

**在進行除法運算前會先檢查除數是否為零:

#include

#include

main()

quotient = dividend / divisor;

fprintf(stderr, "quotient 變數的值為 : %d\n", quotient );

exit(0);

}當上面的**被編譯和執行時,它會產生下列結果:

除數為 0 退出執行...

程式退出狀態

程式成功執行完乙個操作正常退出的時候會帶有值 exit_success。在這裡,exit_success 是巨集,它被定義為 0。

如果程式中存在一種錯誤情況,當退出程式時,會帶有狀態值 exit_failure,被定義為 -1。

#include

#include

main()

quotient = dividend / divisor;

fprintf(stderr, "quotient 變數的值為: %d\n", quotient );

exit(exit_success);

}

錯誤情況彙總

執行時出現的警告 st may be used uninitialized in this function st 為結構體 struct node st struct node 原因為 使用時 st 沒有建立空間 缺少 st struct node malloc sizeof struct nod...

引數返回錯誤情況

一般的來說,函式是可以返回區域性變數的。區域性變數的作用域只在函式內部,在函式返回後,區域性變數的記憶體已經釋放了。因此,如果函式返回的是區域性變數的值,不涉及位址,程式不會出錯。但是如果返回的是區域性變數的位址 指標 的話,程式執行後會出錯。因為函式只是把指標複製後返回了,但是指標指向的內容已經被...

出現段錯誤的情況彙總

1.訪問陣列時超過陣列邊界 int data 20 int n for n 0 n 20 n 上面宣告的陣列長度為20,但是卻會訪問data 20 已經超過了陣列邊界,導致段錯誤出現。2.陣列的長度是負值 int imgwidth,imgheight long long len imgwidth i...