Hallo 
Habe mal eine Frage. Undzwar tritt in meinem Programm ein Fehler auf, den ich einfach nicht nachvollziehen kann. Vielleicht kann mir das ja jemand erklären:
Ich versuche gerade eigene Implementationen von strcpy(), strcat() usw... zu machen (Programmieraufgabe aus einem Buch). Strcpy() funktioniert auch einwandtfrei:
Nur, wenn ich jetzt versuche äquivalenten Code in meiner strcat()-Funktion zu nutzen:
Enthält mein char* nach Zuweisung dieser Funktion nur ein einzelnes Zeichen (im moment ein Tilde~ - aber das ist wohl mehr Zufall denke ich^^):
Wenn ich nun jedoch den Code in der strcat-Funktion durch einen Aufruf von test::strcpy() ersetze, funktioniert alles ohne Probleme. Wie kann sowas angehen?
Bin für jede Hilfe dankbar,
Gruß

Habe mal eine Frage. Undzwar tritt in meinem Programm ein Fehler auf, den ich einfach nicht nachvollziehen kann. Vielleicht kann mir das ja jemand erklären:
Ich versuche gerade eigene Implementationen von strcpy(), strcat() usw... zu machen (Programmieraufgabe aus einem Buch). Strcpy() funktioniert auch einwandtfrei:
Code:
void strcpy(char*goal, const char* source)
{
while(*goal++=*source++);
}
Code:
char* cat(const char* target,const char* source)
{
char* temp=new char[test::strlen(target)+1];
while(*temp++=*target++); //...<-- Diesen Part hier
/*--*temp=*source;
while(*temp++=*source++);
*/
return temp;
}
Enthält mein char* nach Zuweisung dieser Funktion nur ein einzelnes Zeichen (im moment ein Tilde~ - aber das ist wohl mehr Zufall denke ich^^):
Code:
char* Ziel=test::cat(Test,Test2); //Test ist ein gültiger C-String
Wenn ich nun jedoch den Code in der strcat-Funktion durch einen Aufruf von test::strcpy() ersetze, funktioniert alles ohne Probleme. Wie kann sowas angehen?
Bin für jede Hilfe dankbar,
Gruß