C char array zurückgeben

Diskutiere C char array zurückgeben im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hallo zusammen eine wohl recht simple frage leider scheint irgend ein verständnisproblem bei mir zu herrschen char * bla(){ char...

  1. Nano

    Nano Foren As

    Dabei seit:
    02.12.2006
    Beiträge:
    93
    Zustimmungen:
    0
    Hallo zusammen eine wohl recht simple frage leider scheint irgend ein verständnisproblem bei mir zu herrschen


    Code:
    
    char * bla(){
    
        char str[40];
        return *str;
    
    }
    
    
    
    
    ich möchte gerne den "string" str zurückgeben, bzw das char array
    return str; bzw &str; funktionieren auch nicht, leider verstehe ich nicht warum es falsch ist.

    Ich möchte dein Zeiger auf das arry str[40] bzw auf dessen anfang zurückgeben ( also quasi den "string" )
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. baggio

    baggio Jungspund

    Dabei seit:
    17.05.2007
    Beiträge:
    11
    Zustimmungen:
    0
    In deinem Beispiel wird der Speicher für das Array auf dem Stack angelegt. Nach Verlassen der Funktion wird dieser wieder freigegeben. Mit dynamisch allokierten Speicher sollte das ganze funktionieren:

    Code:
    char *fct(){
      char *str = (char *) malloc(40 * sizeof(char));
      return str;
     }
    
    Nach dem Benutzen des Strings muss der allokierte Speicher natürlich wieder freigegeben werden.

    Gruß, baggio.
     
  4. #3 floyd62, 24.02.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    324
    Zustimmungen:
    0
    ... oder du machst den String in bla() statisch:
    Code:
    char * bla(){
        static char str[40];
        ...
        return str;
    }
    
     
  5. #4 Gast1, 25.02.2009
    Zuletzt von einem Moderator bearbeitet: 25.02.2009
    Gast1

    Gast1 Gast

    Gib der funktion einfach die adresse mit, an der der string liegen soll:
    Code:
    void bla(char *dest, size_t max)
    {
     char tmp[1000];
     //...
     strncpy(dest, tmp, max);
     return;
    }
    Dann isr dein string auch nach dem nächsten aufruf von bla vorhanden, und du brauchst dich nicht um die speicherfreigabe kümmern (zumindest nicht von etwas, dass in bla reserviert wurde)
     
  6. Domme.

    Domme. Mitglied

    Dabei seit:
    28.12.2008
    Beiträge:
    33
    Zustimmungen:
    0
    Du könntest deinen String auch in einer Struktur verpacken und dann zurückgeben.

    Code:
    struct char_array { char string[20]; };
    
    struct char_array bla()
    {
          struct char_array str;
          /* ...*/
          return str;
    }
    
    

    so sollte es auch gehen.

    Gruß D.
     
  7. #6 bytepool, 25.02.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hehe, langsam wird es aber echt abenteuerlich hier. Er koennte sich natuerlich auch objekt orientierte features um C herum bauen, und Garbage Collection implementieren. ;)

    Dazu faellt mir mal wieder dieser schoene alte Witz ein:
    http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html

    Sorry fuer das Off-Topic, aber ich find das irgendwie grad so schoen passend hier. ;)

    mfg,
    bytepool
     
  8. Domme.

    Domme. Mitglied

    Dabei seit:
    28.12.2008
    Beiträge:
    33
    Zustimmungen:
    0
Thema: C char array zurückgeben
Besucher kamen mit folgenden Suchen
  1. c array zurückgeben

    ,
  2. array zurückgeben c

    ,
  3. char array return

    ,
  4. char array zurückgeben,
  5. c char zurückgeben,
  6. c char array rückgabe,
  7. return char,
  8. char array zurückgeben c,
  9. c return char array,
  10. char[] rückgabe c,
  11. c char array rueckgabe,
  12. char array c zurückgeben ,
  13. return char array from function in c,
  14. array zurückgeben c#,
  15. c rückgabe char array,
  16. char array zurück geben,
  17. return char array c,
  18. c funktion array zurückgeben,
  19. char* aus einer Funktion zurückgeben,
  20. c char mit rückgabewert,
  21. c char arry rückgabe,
  22. rückgabe char array,
  23. char array in funktion,
  24. c char array als rückgabewert,
  25. function char array return
Die Seite wird geladen...

C char array zurückgeben - Ähnliche Themen

  1. aus char array verketteten zeiger erstellen

    aus char array verketteten zeiger erstellen: gegeben: char **array; char *string; array ist initialisiert, mit Speicher allokiert und enthaelt verschieden lange Strings. Nun moechte...
  2. Richard Stallman soll den alleinigen Vorstand des GNU-Projekts aufgeben

    Richard Stallman soll den alleinigen Vorstand des GNU-Projekts aufgeben: Richard Stallman soll laut einer Forderung in einer öffentlichen Erklärung von 18 GNU-Maintainern auch den Vorstand von GNU aufgeben und...
  3. Richard Stallman bleibt GNU-Projektleiter

    Richard Stallman bleibt GNU-Projektleiter: Wie der Richard Stallman in einer E-Mail an die Liste des Projektes bekannt gab, legt er zwar die Präsidentschaft innerhalb der Free Software...
  4. Richard Stallman tritt als Präsident der Free Software Foundation zurück

    Richard Stallman tritt als Präsident der Free Software Foundation zurück: Richard Stallman ist als Präsident der Free Software Foundation zurückgetreten und legte gleichzeitig seine wissenschaftliche Tätigkeit am...
  5. Opensuse: Richard Brown übergibt Vorstand an Gerald Pfeifer

    Opensuse: Richard Brown übergibt Vorstand an Gerald Pfeifer: Richard Brown tritt als Vorsitzender des Vorstands von Opensuse zurück und übergibt die Aufgabe an Gerald Pfeifer. Weiterlesen...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden