mc_gulasch
Erfahrenes Mitglied
Haaalloooo Forum,
ich hab eine Funktion, die folgenden Aufruf und Rückgabewert hat:
Wenn ich mir den Rückgabewert der Funktion anschaue und ausgeben lasse...prima!
Dann hab ich eine zweite Funktion
Das ganze rufe ich dann auf:
Jetzt kommt das DICKE Problem: Der String wird zur funktion_1 richtig übergeben, aber dann wird der Speicher mit den String - Elementen von meiner fopen() - Funktion (in funktion_1 aufgerufen) überschrieben. Von welcher Funktion es letztendlich überschrieben wird, ist auch vollkommen egal, aber ich frage mich:
a) WIE kann sowas passieren?
b) DARF soetwas passieren (gerade in C)?
Kurios ist auch, dass folgendes klappt:
Hat jemand ne Erklärung dafür oder mach ich hier grundlegend was falsch?
Thx @ all
Gulasch
ich hab eine Funktion, die folgenden Aufruf und Rückgabewert hat:
C:
unsigned char* funktion_2 (unsigned char *string)
Dann hab ich eine zweite Funktion
C:
void funktion_1(unsigned char *string)
C:
funktion_1(funktion_2(string))
a) WIE kann sowas passieren?
b) DARF soetwas passieren (gerade in C)?
Kurios ist auch, dass folgendes klappt:
C:
char output[256];
strcpy(output,funktion_2(string));
funktion_1(output);
Thx @ all
Gulasch