Ausdruck muss ein Zeiger auf ein komplettes Objekt Typ

Ich versuche auf die Werte zuzugreifen, die in einem mehrdimensionalen array mit zwei Ganzzahlen. Das array deklariert ist in einer anderen Quelldatei, und ich bin mit einer extern-Deklaration an der Spitze des problem-source-Datei.

in der Datei, wo Ihr erklärt, ich kann auf die Werte, aber wenn ich kopieren und fügen Sie den gleichen code-Zeile über der compiler teilt mir mit, dass der Ausdruck muss ein Zeiger auf ein komplettes Objekt-Typ.

Ich bin neu in C, und der Zeiger, so dass ich nicht wirklich wissen, was Los ist. Ich würde schätzen, irgendwelche Ideen.

extern struct piece board[8][8];


void move()
{

    char row;
    int column;
    int rowNumber = 0;
    printf("row: ");
    scanf("%c",&row);
    fflush(stdin);
    printf("column: ");
    scanf("%d",&column);
    column--;
    switch(row)
    {
    case 'A': rowNumber = 0; break;
    case 'B': rowNumber = 1; break;
    case 'C': rowNumber = 2; break;
    case 'D': rowNumber = 3; break;
    case 'E': rowNumber = 4; break;
    case 'F': rowNumber = 5; break;
    case 'G': rowNumber = 6; break;
    case 'H': rowNumber = 7; 
    }
    printf("\n your row is %d and column is %d",rowNumber,column);


     struct piece temp = &board[rowNumber][column];

}

und das array selbst:

struct piece board[8][8] = {{{0,0,blackRook,"Rook"},{0,1,blackKnight,"Knight"},         {0,2,blackBishop,"Bishop"},{0,3,blackQueen,"Queen"},{0,4,blackKing,"King"}, {0,5,blackBishop,"Bishop"},{0,6,blackKnight,"Knight"},{0,7,blackRook,"Rook"}},
          {{1,0,blackPawn,"Pawn"}, {1,1,blackPawn,"Pawn"},{1,2,blackPawn,"Pawn"},{1,3,blackPawn,"Pawn"},{1,4,blackPawn,"Pawn"},{1,5,blackPawn,"Pawn"},{1,6,blackPawn,"Pawn"},{1,7,blackPawn,"Pawn"}},
                            {0},{0},{0},{0},


                             {{6,0,whitePawn,"Pawn"},{6,1,whitePawn,"Pawn"},{6,2,whitePawn,"Pawn"},{6,3,whitePawn,"Pawn"},{6,4,whitePawn,"Pawn"},{6,5,whitePawn,"Pawn"},{6,6,whitePawn,"Pawn"},{6,7,whitePawn,"Pawn"}},
                            {{7,0,whiteRook,"Rook"},{7,1,whiteKnight,"Knight"},{7,2,whiteBishop,"Bishop"},{7,3,whiteQueen,"Queen"},{7,4,whiteKing,"King"},{7,5,whiteBishop,"Bishop"},{7,6,whiteKnight,"Knight"},{7,7,whiteRook,"Rook"}}};

sorry wegen der Formatierung, es sieht viel hübscher aus, als in visual studio. Die ersten beiden und die letzten beiden arrays sind gefüllt mit der struct-Stück, und der rest ist 0. Der leere Werte nicht zu sein scheinen Probleme woanders in meinem code.

EDIT: und hier ist das Stück-definition

struct piece
{
    int row;
    int column;
    int weight;
    char name[20];

};
Fügen Sie die definition für die piece Struktur.

InformationsquelleAutor James Kerr | 2012-06-11

Schreibe einen Kommentar