Mehrdimensionales const char Array



  • Hallo Forum,

    eine Funktion erwartet als Parameter einen "const char *". Ich möchte diese Funktion nun in in einer Schleife mit verschiedenen Parametern aufrufen. Mein Code:

    int PingServer(const char *cServerName, const char *cPW);
    
    void main () {
    	const char *cAccessPW[][2] = {{"0", "a"},
    											{"1", "a"},
    											{"2", "b"},
    											{"3", "c"},
    											{"4", "d"},
    											{"5", "e"}
    	};
    
    	for (i=0; i<6; i++) {
    		retval += PingServer(cAccessPW[i,0], cAccessPW[i,0]);
    	}
    }
    

    Die Fehlermeldung ist:
    > function' : 'const char *' differs in levels of indirection from 'const char *[2]'

    1. Das verstehe ich nicht ganz, denn das Array besteht doch aus "const char *" Pointern. Woher kommt das Array?

    2. Gibt es eine Möglichkeit die Arraygrenzen in der For Schleife dynamisch errechnen zu lassen? Die Anzahl der Einträge wird sicher bald steigen...

    Vielen Dank

    Malte



  • 1. das mit const darfst Du nicht so ernst nehmen
    2. [i][0] statt [i,0] ist die Lösung
    3. Vielleicht mache ich mal eine Page auf, in der jede Internetseite angeprangert wird, die in ihrem Text "void main" stehen hat. Schwerer Ausnahmefehler!!!



  • Ich möchte ja alle Warnungen beseitigen...

    Den zweiten Punkt habe ich mittlerweile selber herausgefunden:
    sizeof(cAccessPW) / sizeof(cAccessPW[0])
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-174658.html

    Vielen Dank

    Malte


Anmelden zum Antworten