回答編集履歴

1

回答を修正

2020/01/11 08:25

投稿

rubato6809
rubato6809

スコア1380

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
- 次にキャストの使い方ですが、%d で int の値を読みだすなら、最初から
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 などが正しく動作していないだけかもしれません。