回答編集履歴
1
誤記訂正
test
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
こんにちは。
|
2
2
|
|
3
|
-
char変数 a は1バイトの領域なので、scanfで文字列を取り込むとメモリ破壊を起こします。
|
3
|
+
~~char変数 a は1バイトの領域なので、scanfで文字列を取り込むとメモリ破壊を起こします。
|
4
4
|
|
5
5
|
その結果がsegmentation faultです。
|
6
6
|
|
7
|
-
|
8
|
-
|
9
7
|
char a[16]; /* 配列にする(とりあえず16バイト程度)*/
|
10
|
-
|
11
|
-
|
12
8
|
|
13
9
|
scanf("%c", a); /* &を取る */
|
14
10
|
|
15
11
|
n=a[0]-'a'; /* 配列の先頭要素に変更 */
|
16
12
|
|
13
|
+
これで実行すれば目的の値が表示されます。~~
|
17
14
|
|
18
15
|
|
16
|
+
|
19
|
-
|
17
|
+
%cなのでメモリ破壊しませんね。。。
|
18
|
+
|
19
|
+
なぜだろう。。。
|