回答編集履歴
1
回答を修正
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
で整数値にアクセスしようとしていますが、誤りがあります。しかも一箇所に誤りが複数あると何をどう調整したらよいか迷うものです。
|
39
|
+
で整数値にアクセスしようとしています。もしかするとデータのあるアドレスは正しくもとめられるかもしれませんが、計算式は不適切です。~~が、誤りがあります。しかも一箇所に誤りが複数あると何をどう調整したらよいか迷うものです。~~
|
40
40
|
|
41
41
|
- ポインタを使ったアドレス計算がおかしい
|
42
42
|
|
@@ -70,13 +70,13 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
|
73
|
+
キャストの使い方ですが、%d で int の引数値を読みだすなら、最初から (int*) でキャストし、argc をインデックスとして
|
74
74
|
|
75
|
-
``` ((int*) &fmt) ```
|
75
|
+
``` i = ((int*) &fmt) [argc]; ```
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
とし
|
79
|
+
としたらどうでしょうか。~~ここを基準にして、添字アクセスを付け加えれば良いのでは。~~
|
80
80
|
|
81
81
|
|
82
82
|
|
@@ -93,3 +93,7 @@
|
|
93
93
|
|
94
94
|
|
95
95
|
[SPIM](https://ja.wikipedia.org/wiki/SPIM) はMIPSシミュレータなのね。そして、print_int()、print_string() 等がシステムコールとして用意されている、と。質問者が書いた _print_int、_print_string が動作するかどうか、単体テストは済んでいるんですかね?
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
上記のアドレス計算が(計算式が不適切であっても)計算結果が合っているなら、_print_int などが正しく動作していないだけかもしれません。
|