Programm muckt auf (Variablenübergabe)
-
Hallo,
also char geht in die Funktion und AnsiString kommt raus und ins Label übergebe ich Label1->Caption = gewandelt;Gruß
-
daniel23 schrieb:
AnsiString kommt raus
Sicher?
-
Hallo
Also meine Funktion heißt so: algo(char* instr, AnsiString aus, size1){}
Ja sicher!
-
Damit kann man genau so wenig anfangen.
Gib mal den ganzen Code! Also den von algo() und die Stelle, wo die Funktion aufgerufen wird.
P.s. warum nimmst du Pointer auf char als Input-Datentyp?
-
Reyx schrieb:
P.s. warum nimmst du Pointer auf char als Input-Datentyp?
Damit ich auf die einzelnen Zeichen zugreifen kann (instr[i]).
Mein Prog geht jetzt wieder ich muste ne AnsiString Variable in private schreiben und so zu sagen zwischen speichern, demnach heist meine Funktion jetzt so: algo(char* instr, size1){}.
Danke für eure Mühe
Gruß
-
Und wie kommst du auf die Idee, dass wäre mit AnsiString nicht möglich?
-
Reyx schrieb:
Und wie kommst du auf die Idee, dass wäre mit AnsiString nicht möglich?
Was meinst du, auf einzelne Zeichen zugreifen aus nem AnsiString, oder was?
Ich habs nicht probiert, aber was soll daran besser sein?Gruß
-
daniel23 schrieb:
Also meine Funktion heißt so: algo(char* instr, AnsiString aus, size1){}
Weißt du, was "call by value" ist? Ist dir klar, dass eine Funktion, die so aussieht, den Parameter aus nicht ändern kann, weil sie mit einer Kopie arbeitet?
-
Nein ich weiß nicht was 'cal by value' ist.?
wie müste meine Funktion dann aussehen?Gruß
-
Hallo
Um die Parameter zu ändern, musst du sie als Pointer oder Referenz übergeben (call by refernce). Du übergibst aber die blanke Variable (call by value) und das verbraucht Ziet (gerade bei größeren Objeketen) und erlaubt zwar das Verändern des Parameters, aber dieser ist nur eine Kopie und die Änderungen haben keine Auswirkungen auf das übergebene Objekt.
chrische
-
daniel23 schrieb:
Ich habs nicht probiert, aber was soll daran besser sein?
z.B. dass du mit einer umfangreichen String-Klasse und nicht irgendwelchem Pointer-Gewirr hantierst.
Du benutzt ja auch die VCL und nicht die WinAPI. Warum? Was sollte daran besser sein?
-
@daniel23
Ich würde sage, du solltest vielleicht etwas in einem Tutorial und/oder Buch lesen
http://tutorial.schornboeck.net/funktionen2.htm
http://tutorial.schornboeck.net/referenzen.htm