回答編集履歴

2

スタックオーバーフローの例追記

2017/05/14 07:45

投稿

naomi3
naomi3

スコア1105

test CHANGED
@@ -3,3 +3,19 @@
3
3
 
4
4
 
5
5
  バッファオーバーフローとは、バッファオーバーランとも呼び、配列で宣言された範囲外への書き込みによる不正なアクセスを言います。C/C++では配列の範囲外アクセスの自動検出を行いません。言語仕様では、**不定**すなわち、配列の範囲外アクセスが行われても**動作は一切保障されません**。実際は、他の変数へのアクセスが発生して誤動作したり、プロセスに対して割り当てられていないメモリ領域へのアクセスが発生してsegmentation fault、すなわちOSによって強制終了させられます。strike1217さんのケースでは、プロセスに対して割り当てられていないメモリ領域へのアクセスが発生したことになります。
6
+
7
+
8
+
9
+ スタックオーバーフローの例は、以下のような終わりのない再帰呼び出しで作れます。:
10
+
11
+ ```C
12
+
13
+ int main(int argc, char* argv[]) {
14
+
15
+ main(argc, argv);
16
+
17
+ }
18
+
19
+ ```
20
+
21
+

1

誤記訂正

2017/05/14 07:45

投稿

naomi3
naomi3

スコア1105

test CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
 
4
4
 
5
- バッファオーバーフローとは、バッファオーバーランとも呼び、配列で宣言された範囲外への書き込みによる不正なアクセスを言います。C/C++では配列の範囲外アクセスの自動検出を行いません。言語仕様では、**不定**すなわち、配列の範囲外アクセスが行われても**動作は一切保障されません**。実際は、他の変数へのアクセスが発生して誤動作したり、プロセスに対して割り当てられていないメモリ領域へのアクセスが発生してsegmentation fault、すなわちOSによって強制停止させられます。strike1217さんのケースでは、プロセスに対して割り当てられていないメモリ領域へのアクセスが発生したことになります。
5
+ バッファオーバーフローとは、バッファオーバーランとも呼び、配列で宣言された範囲外への書き込みによる不正なアクセスを言います。C/C++では配列の範囲外アクセスの自動検出を行いません。言語仕様では、**不定**すなわち、配列の範囲外アクセスが行われても**動作は一切保障されません**。実際は、他の変数へのアクセスが発生して誤動作したり、プロセスに対して割り当てられていないメモリ領域へのアクセスが発生してsegmentation fault、すなわちOSによって強制終了させられます。strike1217さんのケースでは、プロセスに対して割り当てられていないメモリ領域へのアクセスが発生したことになります。