0

関数を使用して2D配列を印刷しようとしていますが、エラーが発生し続けます"pointer expected"

戦艦型のグリッドを作ろうとしています。座標の行と列を印刷することはできますが、実際には2D配列(すべての要素に「。」を含む)を印刷することはできません。

どんな助けでもいただければ幸いです、私はこれに非常に新しいです。ありがとう!:)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int length;
int width;
int i;
int j;
char invisible_board;


void board_setup(int *rows, int *columns){
    char *invisible_board[*rows][*columns];
char *player_board[*rows][*columns];

for (i = 0; i < *rows; i++){
    for (j = 0; j < *columns; j++){
        invisible_board[i][j] = ".";    //Sets all elements in hidden board to water
    }       
}

for (i = 0; i < *rows; i++){
    for (j = 0; j < *columns; j++){
        player_board[i][j] = ".";
    }
}
}

void display(int *rows, int *columns, char *invisible_board){

printf("   ");
for (i=1; i < *rows +1;i++){
    printf("%d  ",i);
}
printf("\n");                       //Prints top row of co-ordinates

for (i=1; i < *columns+1;i++){
    printf("%d ",i);
    for (j=0;j < *columns;j++){         //Prints left column of co-    ordinates and rows of game board
            printf(" %c ",invisible_board[i-1][j]);
        }
        printf("\n");
        }

}

int main(void){

    printf("Please enter the amount of rows in your board\n");
    scanf("%d",&length);
    printf("Please enter the amount of columns in your board\n");
    scanf("%d",&width);

    board_setup(&length,&width);
    display(&length,&width,&invisible_board);

    return (0);
}
4

1 に答える 1

1

これは、コードを機能させるためにコードに加えることができる最も簡単な変更です....今....これはまだ良いコードではありません。しかし、始めましょう。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int length;
int width;
int i;
int j;
char invisible_board[100][100];   // dynamically allocate....
char player_board[100][100];   // dynamically allocate....


void board_setup(int *rows, int *columns){  
    for (i = 0; i < *rows; i++){
        for (j = 0; j < *columns; j++){
            invisible_board[i][j] = '.';    //Sets all elements in hidden board to water
        }       
    }

    for (i = 0; i < *rows; i++){
        for (j = 0; j < *columns; j++){
            player_board[i][j] = '.';
        }
    }
}

void display(int *rows, int *columns){

    printf("   ");
    for (i=1; i < *rows +1;i++){
        printf("%d  ",i);
    }
    printf("\n");                       //Prints top row of co-ordinates

    for (i=1; i < *columns+1;i++){
        printf("%d ",i);
        for (j=0;j < *columns;j++){         //Prints left column of co-    ordinates and rows of game board
            printf(" %c ",invisible_board[i-1][j]);
        }
        printf("\n");
    }

}

int main(void){

    printf("Please enter the amount of rows in your board\n");
    scanf("%d",&length);
    printf("Please enter the amount of columns in your board\n");
    scanf("%d",&width);

    board_setup(&length,&width);
    display(&length,&width);

    return (0);
}
于 2013-01-29T01:05:46.563 に答える