Wie kopierst du denn? Mit strcpy?
In einen Zeiger, den du als Referenz übergeben hast, und der mit "\0" initialisiert wurde? Ohne neuen Speicher anzufordern?
Das kann nur in die Hose gehen. Dein Zeiger zeigt auf das Stringliteral "\0", da darfst du gar nichts reinkopieren.
Übrigens: "\0" ist sowieso Quatsch. Stringliterale sind automatisch nullterminiert. Das Literal "" besteht aus einem Stringendezeichen, das Literal "\0" also aus zweien.
Ich würde dir dringend empfehlen, das ganze auf eine Stringklasse, z.B. std::string umzustellen, die dir die Speicherverwaltung abnimmt.