C言語なら俺に聞け(入門篇) Part 24
■ このスレッドは過去ログ倉庫に格納されています
0618デフォルトの名無しさん
2008/02/05(火) 20:52:28main () {
char *s;
scanf("%s",s);
return0;
}
上記のようなプログラムを作成し、実行しました。
すると、
入力が「111111111111111」のときは正常終了したのですが、
入力が「1111111111111111111111111111」のときはセグメント例外がおきてしまいました。
ここで質問です。なぜ二度目の実行でセグメント例外が起きてしまったのでしょうか?
自分は、「ポインタ宣言時に確保したメモリの範囲外に書き込もうとしため」と考えたのですが、そもそも一度目の実行で1byte(char一個分)以上の入力ができてしまっていますよね。この時点で、理由がわかりません。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています