前提・実現したいこと
int array[5];
としているのに
array[5]=32767
と表示され、segmentation faultが発生しない理由を知りたい。
発生している問題・エラーメッセージ
下記のコードをコンパイルし、実行すると 32767 と表示されるのですが、どうしてなのかがわかりません。
該当のソースコード
C
1#include <stdio.h> 2#include <stdlib.h> 3 4#define SIZE 5 /* 配列の要素数 */ 5 6/* メイン関数 */ 7int main() 8{ 9 int array[SIZE]; /* 配列arrayを作成 */ 10 int i; 11 int temp; 12 13 /* arrayの要素を入力 */ 14 15 printf("%d",array[5]); 16 17 /* arrayの要素を逆順に並べ替え */ 18 19 return 0; 20}
試したこと
printfの前にarray[0] = 1;
とコードを足したら32765となりました
補足情報(FW/ツールのバージョンなど)
メモリの中身がたまたま32767だったということなんですか?
ぜひ教えてほしいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/12 12:11
2019/05/12 12:27
2019/05/12 12:32