2016-03-30 5 views
-1

falsch:Enum. Nicht finden, was in einer Header-Datei

typedef struct apartment_t* Apartment; 
    typedef enum { EMPTY, WALL } SquareType; 

struct apartment_t { 
    SquareType** squares; 
    int width; 
    int length; 
    int price; 
}; 

in der Quelldatei:

int apartmentTotalArea(Apartment apartment) { 

    int countEmpty = 0; 

    for (int i=0;i<apartment->length;i++) 
     for (int j=0;j<apartment->width;j++) { 
      SquareType Square = apartment->squares[i][j]; 
      switch(Square) { 
       case Square.EMPTY: // Bad 
        countEmpty++; 
        break; 

       case Square.WALL: // Bad 
        break; 
      } 
     } 

dieser Funktion werden die leeren Flecken in einem bestimmten 2D-Array zählt. Ich habe ein Problem mit dem Schalter, es markiert beide Fälle als schlechte Aussagen. Was ist falsch an meinem Code? Vielen Dank.

+0

'Typ **' ist kein 2D-Array und kann es nicht darstellen! Es ist ein Zeiger zum Zeiger auf 'Type'. Und ein [mcve] bereitstellen. – Olaf

+0

Wo hast du 'IsEmpty' her? – immibis

+0

@immibis Das sollte Square sein. Mein Fehler! – SomeoneWithAQuestion

Antwort

1

In Ihrem Code gibt es keine Square.EMPTY oder . Verwenden Sie:

switch(Square) { 
    case EMPTY: // Juse EMPTY, not Square.EMPTY 
     countEmpty++; 
     break; 

    case WALL: 
     break; 
}