Einfaches Textarray



  • Hallo und Guten Abend Hier ein Array - Programm
    Das Programm liest einfach solange ein Passwort vom Benutzer ein
    bis es korrekt eingegeben wurde.
    Ich habe diesbezüglich eine Frage in Zeile 13
    Wenn Ich hier ein & vor passwort hinschreibe kommt beim
    Kompilieren folgende Fehlermeldung

    Also Zeile 13 : scanf("%s",&passwort);
    

    Fehlermeldung

    format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[10]’ [-Wformat]
    
    #include <stdio.h>
    #include <strings.h>
    #define true 1
    #define false 0
    #define bool char
    
    int main() {
    	bool passwort_korrekt = false;		// Speichert Status, ob Passwort korrekt eingegeben wurde
    	char passwort[10];					// Speicherplatz reservieren für Passworteingabe
    	while (! passwort_korrekt) {				// solange PW nicht korrekt eingegeben wurde…
    		printf("Bitte Passwort eingeben: ");
    		scanf("%s", passwort);
    		if (strcmp(passwort,"geheim") == 0) {	// Wenn PW korrekt, dann Status ändern
    			passwort_korrekt = true;
    		}
    	}
    	// Hier wird erst weitergemacht, wenn Status das richtige PW signalisiert
    	printf("Passwort korrekt\n");
    	return 0;
    }
    

    Hat jemand eine Erklärung für diese Fehlermeldung, Es hängt damit zusammen,
    dass man bei einem String array nicht die Anweisung schreibe an "Adresse von"
    erteilt,sondern man gibt die Variable direckt an. Nur wieso ist dies
    hier der Fall?



  • Ein Arrayname alleine (ohne []) steht schon für die Adresse von dem Array.



  • Danke!


Anmelden zum Antworten