Datentyp zur Rückgabe von Strings



  • Hallo,
    char ist nicht der Rückgabedatentyp fon FUnktionen um Strings zurückzugeben, funzt irgendwie nicht. Gibts da nen anderen?

    char function(void)
    {
    //funzt nicht!!
    }



  • Ein String besteht nicht aus einem einzelnen Zeichen sondern aus mehreren. In C gibts da nur die Möglichkeit einen Zeiger auf das erste Zeichen zurückzuliefern.

    char* foo ()
    {
    }
    

    Aber aufgepasst! Lieber den char* bereits an foo überliefern lassen und diesen dann bearbeiten. Warum?

    - Erstellst du in foo() einen neues dynamisches Char-Array mit new/malloc und gibst dieses zurück müsste sich der User um das Löschen kümmern - tut er aber nicht.

    - Löscht du es drinnen bekommst du sowieso einen bösen Fehler.

    - Und nein static ist auch keine Lösung 🙄

    Also lieber:

    DerDarfJetztWasAnderesSein foo (char* Buffer, unsigned long int Size)
    {
    }
    

    Du kannst aber nun auch getrost char* als Rückgabetyp angeben und Buffer zurückgeben!

    MfG SideWinder


Anmelden zum Antworten