Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

String als Rückgabewert einer Funktion (C)

vesala / 6 Antworten / Flachansicht Nickles

nabend,


ist es möglich einen string(z.B: char feld[20];) als rückgabewert zurückzugeben?
also return feld;


wenn ja wie definiere ich dann die Funktion, habe bis jetzt nur Zeiger auf globalen String oder einen einzelnen char hinbekommen->welches mir beides nix nützt


THX Vesala

bei Antwort benachrichtigen
thomas woelfer vesala „die funktion macht folgendes: sie holt aus einer Textdatei eine bestimmt Zeile...“
Optionen

ich denke das dine hauptsaechliches problem daraus bestehen wird das deine holezeile funktion in einen puffer lesen wird und du dann einen zeiger auf diesen puffer lieferts. ungefaehr so:

char* holezeile( int z)
{
char buf[1024];
// ... blabal
return buf;

}

das problem dabei ist das der speicher von buf auf dem stack liegt und nicht mehr verfuegbar ist wenn holezeile terminiert. du musst den speicher allozieren auf den du den zeiger lieferst...

char* holezeile( int z)
{
char buf[1024]
// blabla.. text steht in buf

char* p = (char*)malloc(strlen(buf)+1);
strcpy( // aus buf nach p
return p;
}

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen