在 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