Fehler: Comparison between Pointer und integer



  • Hallo.

    Ich habe folgende Warnmeldungen vom Compiler:

    warning: comparison between pointer and integer
    warning: comparison with string literal results in unspecified behavior

    hier Auszüge aus dem Code:

    struct flight
     17 {
     18         char depart[16];        // Startflughafen
     19         char arrive[16];        // Zielflughafen
     20         char seat[30][6];       // 30 Reihen zu je 6 Plätzen
     21 };
    ...
     99 int list_flight(struct flight *fl)
    100 {
    101         int i, k, free_seats=180;
    102         for(i=0;i<6;i++)
    103         {
    104                 for(k=0;k<30;k++)
    105                 {
    106                         if(fl->seat[k][i]=="x")
    107                                 free_seats--;
    108                 }
    109         }
    110         printf("\nStartet von: %-20s Landet in: %-20s Plätze (gesamt/frei): 180/%i\n",fl->depart, fl->arrive, free_seats);
    111         return 0;
    112 }
    ...
    

    in der Zeile 106, wo die Warnungen auftreten vergleiche ich doch den Wert eines Element des Char-Arrays mit dem char x oder hab ich da irgendetwas übersehen?

    Vielen Dank, MfG Heiko



  • Vergleiche mit dem char 'x', nicht mit dem String "x" (das ist ein großer Unterschied, du vergleichst hier mit der Adresse des Stringliterals "x").



  • ahh, danke, soweit hab ich garnicht gedacht 🙂

    fl->seat[k][i]=='x'

    es funktioniert, danke.


Anmelden zum Antworten