段錯誤實際是 C++ 中的行為未定義嗎?
未定義的行為是一種給實現者(例如,編譯器或作業系統)以及計算機充分自由去做“想”做的任何事情的方法,換句話說,就是不關心後果。
發生段錯誤的情況本質上是暫時的。它們不一定總導致段錯誤,但也可能正確執行(或至少看起來是正確的)。例如,考慮以下程式碼段 ——
#include<iostream>
int main() {
int arr[2];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2; // Undefined behaviour
arr[3] = 3; // Undefined behaviour
}此程式碼可能會正確執行或導致段錯誤。它並非真正定義,並且依賴於實現。你可以在此處閱讀更多關於未定義行為的內容——http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C #
MongoDB
MySQL
Javascript
PHP