String-Funktion



  • Aso, das soll erst in funk2 gelöscht werden - habe ich falsch gelesen.
    Dann machst du halt am ende von funk2 das delete[] s;

    Transparent ist das dann schon, denn Du gibst es ja selbst als Bedingung an:

    Es soll aber erst am Ende von func2 zerstört werden

    Oder anders: Programmiere in Java - da gibts einen Garbage Collector, der gibt automatisch den Speicher wieder frei, wenn die Referenzen auf das gew. Objekt nicht mehr benutzt werden und Du brauchst Dich nicht mehr um delete zu kümmern. 😃



  • Bashar schrieb:

    Ja, dein Problem liegt darin, dass du in einem Traum-Universum lebst. Was du vorhast geht schlicht und einfach nicht, genauso wie 1 + 1 niemals 3 wird. Irgendwer muß ja die Verantwortung haben, den Speicher, den der String belegt, freizugeben. Das kann man entweder per Hand machen (mit delete) oder sich eine Klasse schreiben, die das im Destruktor tut (das wär dann std::string.)

    Genau das wollte ich ja nur wissen.
    Wie schon gesagt, hab bisher größtenteils nur mit PHP programmiert und da geht so etwas ausgezeichnet. 🙂

    Aber danke, für die Mühe, die ihr euch gemacht habt!

    Bloops



  • In PHP geht das überhaupt nicht, da gibts nämlich keine char-Pointer.



  • Ja eben! Da geht es noch viel einfacher mit ner ganz normalen Mir-ist-doch-egal-was-ich-für-ein-Typ-bin-Variable 😛



  • Wieso sagst du dann, dass du die string-Klasse nicht benutzen willst?



  • Weil string nur ANSI und nicht UNICODE ist oder hab ich da nen Denkfehler...? kann auch sein.



  • ANSI? Ne, die haben damit nichts zu tun. Mit 'std::string' hast Du genau so viel oder so wenig Unicode wir mit 'char*'. Mit 'std::wstring' hast Du genau so viel oder wenig Unicode wie mit 'wchar_t*'. Beidemale muss nicht Unicode verwendet werden (auch wenn das bei den w-Dingern idR so ist. Leider galt bei Unicode lange die Devise, nur 16-bittig bleiben zu wollen. Mittlerweile wurde aber auch noch klingonisch oder ähnlich sinnhafte Zeichen aufgenommen, weswegen man derzeit bei 21 Bit rumdümpelt, die die Norm für 'wchar_t' leider nicht vorschreibt.).



  • Dann definiert man sich einen geeigneten Unicode_char und die dazugehörige char_traits-Spezialisierung, und weiter gehts.



  • Daniel E. schrieb:

    ANSI? Ne, die haben damit nichts zu tun. Mit 'std::string' hast Du genau so viel oder so wenig Unicode wir mit 'char*'.

    Ist mir schon klar... ich benutze ja auch nicht char* sondern TCHAR* mit entsprechenden Definitionen (petzoldgeschädigt *g*). Wollte es in meiner Frage nur nicht unnötig komplizieren.

    Daniel E. schrieb:

    ...klingonisch...

    LOL!



  • typedef std::basic_string<TCHAR> tstring;
    

    o.ä. sollte machbar sein.


Anmelden zum Antworten