先ほどから他の方にも協力いただいているにも関わらず、どうも2次元配列のポインタで引っかかってしまいます。
現在下記のエラーが出ております。
invider.c:50: 警告: passing argument 1 of ‘initialize_top’ makes pointer from integer without a cast
inc/extern.h:9: note: expected ‘char (*)[71]’ but argument is of type ‘char’
原因はソース内のinitialize_topという関数に渡す引数がおかしいよという指摘のようです。
main関数内でinitialize_top関数を呼ぶときに、2次元配列を参照渡ししたいのですが、ソースにはどう書くのが正解でしょうか?
invider.c
1int main(void){ 2 char inputkey; //入力キー 3 int *position; //自分のキャラの位置 4 char result = 0; //下位関数戻り値 5 char display [DISPLAYROWMAX][DISPLAYCOLMAX]; // ゲーム画面 6 char *first_flg ; 7 8 initialize_top(display[DISPLAYROWMAX][DISPLAYCOLMAX]); //ここが指摘されてます。 9 10 *position = 0; 11 while (1) { 12 if (kbhit()) { 13 inputkey = getchar(); 14 switch(inputkey){ 15 case 'l': 16 result = move_right(position); 17 if(result == 1){ 18 continue; 19 }else{ 20 break ; 21 } 22 23 case 'h': 24 result = move_left(position); 25 if(result == 1){ 26 continue; 27 }else{ 28 break; 29 } 30 31 case 'q': 32 goto exit; 33 default: 34 ; 35 } 36 } 37 } 38exit: 39 return 0; 40}
initialize.c
1char initialize_top(char display[DISPLAYROWMAX][DISPLAYCOLMAX]){ 2 char loopcnt_col ; 3 for(loopcnt_col = 0;loopcnt_col < DISPLAYCOLMAX-1; loopcnt_col++){ 4 display[DISPLAYROWMAX-1][loopcnt_col] = '-' ; 5 } 6 7 display[DISPLAYROWMAX-1][DISPLAYCOLMAX-1] = '\n' ; 8 9 return 1 ; 10}
extern.h
1extern char initialize_top(char display[DISPLAYROWMAX][DISPLAYCOLMAX]);
回答1件
あなたの回答
tips
プレビュー