質問編集履歴

1

コメントでいただいたところの修正を行いました.

2022/10/30 13:42

投稿

yuuuuuu_1216
yuuuuuu_1216

スコア1

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,7 @@
5
5
 
6
6
  ### 発生している問題・エラーメッセージ
7
7
  プログラムはうまく作動するのですが、関数はアドレスを要求しているのにポインタ渡しても動くんですか?
8
+ int compare(char p[], char q[]){→暗黙の型変換によりint compare(char *p, char *q){となり宣言時にはアドレスとなっているので関数の仮引数はアドレスを要求しており、char a[NUMBER_A][8] = {"red", "green", "blue"}; char b[NUMBER_B][8] = {"green", "yellow", "red", "purple"};と配列で宣言しているのでこの宣言以外では配列名を使うとそれはアドレスを示していてつまり配列名を実引数とすればいいのでは?と今頭の中で解釈しているんですが、それは違うんですか?
8
9
 
9
10
  ### 該当のソースコード
10
11
 
@@ -40,7 +41,7 @@
40
41
 
41
42
 
42
43
  ### 試したこと
43
- ある学校の問題でif (compare(①,②) == ③),printf("%s\n",①);と空白を埋める問題でもともとアドレスを要求しているしていると思って(a + i)と(b + j)と空白を埋めて実行したのですがエラーが出てしまって動かなくてもしかしたら二次元配列だから型がちがうのかなーと思って質問しています.
44
+ ある学校の問題でif (compare(①,②) == ③),printf("%s\n",①);と空白を埋める問題でもともとアドレスを要求しているしていると思って(a + i)と(b + j)と空白を埋めて実行したのですがエラーが出てしまってもしかしたら二次元配列だから型がちがうのかなーと思って質問しています.
44
45
 
45
46
  ### 補足情報(FW/ツールのバージョンなど)
46
47
  gdbオンラインで実行しています.