Ich versuche, eine benutzerdefinierte Funktion in C zu schreiben, die zwei Zeichenfolgen verketten wird. Bisher habe ich kommen mit:Wie repariert man diese Funktion, so dass sie die Verkettung zweier Strings zurückgibt?
char *strcat406(char *str1, char *str2) {
int str1length = 0;
int str2length = 0;
char newStr[str1length + str2length];
int i;
for (i = 0; i < str1[i] != '\0'; i++)
str1length += 1;
for (i = 0; i < str2[i] != '\0'; i++)
str2length += 1;
for (i = 0; i < str1[i] != '\0'; i++)
newStr[i] = str1[i];
for (i = i; i < str2[i] != '\0'; i++)
newStr[i] = str2[i];
return newStr;
}
ich den Code glauben, mit Ausnahme der Linie funktionieren sollte, die return newStr;
liest, Xcode gibt mir einen Fehler, der „Adresse des Stapelspeichers liest mit lokalen Variablen zugeordnet (x) zurückgegeben "und ich denke, das ist der Grund, warum ich das String-Array nicht in Main gedruckt bekomme, wie ich es will.
Aus meinen Nachforschungen scheint es so zu kommen, weil der Speicher für das zurückgegebene Array freigegeben wird, und so bekomme ich ein Ergebnis, das ich nicht will, obwohl ich keine einzige Antwort auf dieser Site oder sogar in der gefunden habe C Dokumentation, die für mich funktioniert hat.
Wie kann ich meine Funktion so ändern, dass sie die Verkettung zweier Strings zurückgibt?
'obwohl ich nicht eine einzige Antwort auf dieser Seite oder sogar in dem C-Handbuch gefunden habe, die für me.' gearbeitet hat ... mir sagen, warum ich glaube nicht, dass ... –
Ich verstehe deine Frage nicht. –
Also tue ich ......... –