Hallo zusammen, ich bin neuling und weiß nicht mehr weiter :o( Ich möchte von einem Unterprogramm ein "char text[]" in das Hauptprogramm "main" übergeben. Kann mir da eventuell jemand weiterelfen?? Das dürfte doch nicht so schwer sein, oder??!! Mfg Dennis
Isses auch nicht :) char text1[] = "blah"; char text2[] = "blah2"; char * subProgramm( int parm ){ }
mist tab ... also nochmal: char text1[] = "blah"; char text2[] = "blah2"; char * subProgramm( int parm ){ if( parm == 1 ){ return text1; } else { return text2; } } alles klar? Schoene Gruesse, Scheintod
Hallo Scheintod, Danke erst mal für die Antwort. So wie du das beschrieben hast funktioniert es jetzt auch. Habe ich auch probiert. Ich habe jetzt aber eine andere Anwendung. Da hab ich mich nicht richtig ausgedrückt. Sorry, das is meine Schuld. Ich erkläre das mal richtig. Im Hauptprogramm habe ich eine Zeichenkette "temp". Die soll in eine "include <temperatur.h> übergeben werden. Dann wird die Temperatur dort in die Zeichenkette gechrieben und die geben ich dann wieder ans Hauptprogramm zurück. In der "Main" wird die Temperatur dann auf dem LCD ausgegeben. Ich probiere es schon die ganze Zeit, aber mehr wie ein einzelnes ASCII-Zeichen bekomme ich nicht hin :( Gruß Dennis
. "Ich erkläre das mal richtig." gefolgt von Im Hauptprogramm habe ich eine Zeichenkette "temp". Die soll in eine "include <temperatur.h> übergeben werden. ist ein schöner Wochenanfang. Ja, Lachen ist gesund. Mal ernsthaft: #define TEXTLAENGE 20 void hauptprogramm(void) { char temp[TEXTLAENGE]; subProgramm(temp, TEXTLAENGE); } ... void subProgramm(char* p, int l) { if (!p) return; strncpy(p, "temperatur", l); } Das entscheidende ist, daß der aufgerufenen Funktion ein Pointer auf den String übergeben wird (das ist ja bei C-Arrays implizit so), und sicherheitshalber sollte auch die Länge des Stringpuffers an die aufgerufene Funktion übergeben werden, damit diese nicht falsche Annahmen ob dessen Länge trifft und darauffolgende Speicherbereiche überschreibt (der berühmte "buffer overrun"). Auch ist es sinnvoll, in Funktionen, denen Pointer auf was auch immer übergeben werden, diese Pointer auf zumindest rudimentäre Gültigkeit zu überprüfen (sie sollten nicht 0 sein).
Hey Rufus, KLASSE es geht!!! Das Wochenende ist gerettet. Jetzt bin ich wieder happy. War schon am verzweifeln. VIELEN DANK und ein schönes Wochenende... Grüße Dennis
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.