Übergabe von Pointer String



  • Hallo
    Ich habe da mal wieder eine Standard C Frage

    Ich habe ein Pointer Text Array

    const char *uHRENText[] = {
                            "Uhrzeit hh:mm:ss",
                            "Datum DD.MM.JJJJ",
                            "Alarm Zeit hh:mm:ss",
                            "Alarm Datum DD.MM.JJJJ"
    };
    

    und möchte in einer Function einen bestimmten Index des string Arrays ausgeben

    void ShowPage(int Page, int Index, char* Text)
    {
    
      char Text1[20];
    strcpy(Text1, Text[Index]);
         printf("*%s", Text1);      
    
    };
    

    Geht das ?



  • Mit dieser Funktionssignatur sollte es gehen:

    void ShowPage(int Page, int Index, char** Text)
    

    Aufruf:

    ShowPage(1, 1, uHRENText);
    


  • Meckert da nicht der Compiler wg. const rum?



  • DirkB schrieb:

    Meckert da nicht der Compiler wg. const rum?

    Lasset uns abstimmen. Wer ist dafür, das const vor dem Pointer-Array wegzumachen und wer ist dafür, ein const vor das char** der Funktionssignatur zu setzen?

    Ick bin für Ersteres. 🙂



  • Danke für die Antworten
    Nein nicht der Aufruf
    die Function ist nicht richtig Zeiger zeigt ins Nirvana
    Ich möchte wissen wie diese Function von dem Pointer String
    den richtigen String Index nach Text1 schreibt.

    void ShowPage(int Page, int Index,const char* Text) 
    { 
    
      char Text1[20]; 
    strcpy(Text1, Text[Index]); 
         printf("*%s", Text1);       
    
    };
    


  • Doch, deine Funktionssignatur ist falsch: "const char *" bezeichnet nur einen einzelnen String, kein String-Array - und deswegen liefert der Indexzugriff nur ein einzelnen Zeichen.



  • DirkB schrieb:

    Meckert da nicht der Compiler wg. const rum?

    Klingt logisch, also eher:

    void ShowPage(int Page, int Index, const char** Text)
    


  • Danke Belli den Doppel Asterisk habe ich übersehen
    so funktioniert das Zeiger auf Zeiger 🙂


Anmelden zum Antworten