[solved] string-array



  • du müsstest in stringArray() vor note[..] = ... immer ein "sternchen" setzen, z.B.
    *note[0] = new string( "hallo1" );

    logisch, da du ja einen "doppelzeiger" hast (zeiger auf zeiger), musst du auch doppelt dereferenzieren.

    mfg,
    julian



  • Julian__ schrieb:

    du müsstest in stringArray() vor note[..] = ... immer ein "sternchen" setzen, z.B.
    *note[0] = new string( "hallo1" );

    logisch, da du ja einen "doppelzeiger" hast (zeiger auf zeiger), musst du auch doppelt dereferenzieren.

    Das klappt nicht, dann bräuchte er Dreifachzeiger. Der "Doppelzeiger" in der Typensignatur geht ja schon für das C-Array rauf.



  • Konrad Rudolph schrieb:

    Was soll eigentlich die Sache mit den verschachtelten Zeigern?

    wie meinst? naja, is halt nur 'n beispiel für ein pointer-array... wieso?

    wie kann ma in c++ sonst a pointer-array zurückgeben?



  • iko79 schrieb:

    wie kann ma in c++ sonst a pointer-array zurückgeben?

    Das ist schon in Ordnung so. Aber wozu überhaupt das Zeiger-Array?



  • naja, sowas brauch i halt manchmal... wenn i ein array rigendwelcher objekte hab dann arbeit' i ja eher mit pointern auf diese objekte als mit den objekten selbst genauso wie ich als funktionsparameter lieber pointer übergeb als das das gesamte objekt, aber das brauch i euch ja sicher net erzählen...
    sorry, aber i glaub i versteh die frage net ganz... meinst du jetz in dem speziellen fall? da machts natürlich keinen sinn. is wie gesagt nur 'n beispiel zu demonstrationszwecken, damit i net meinen kompletten sourcecode hier posten muss.

    iko79 schrieb:

    wie kann ma in c++ sonst a pointer-array zurückgeben?

    was i damit gemeint hab ist: wie muss ich obiges beispiel umändern, damits funktioniert? wie geb ich in c++ a pointer-array zurück? durch das jahrelange c# hab i irgendwie 's programmieren verlernt 😉



  • Konrad Rudolph schrieb:

    Julian__ schrieb:

    du müsstest in stringArray() vor note[..] = ... immer ein "sternchen" setzen, z.B.
    *note[0] = new string( "hallo1" );

    logisch, da du ja einen "doppelzeiger" hast (zeiger auf zeiger), musst du auch doppelt dereferenzieren.

    Das klappt nicht, dann bräuchte er Dreifachzeiger. Der "Doppelzeiger" in der Typensignatur geht ja schon für das C-Array rauf.

    ...stimmt, sorry. ich hatte es nur schnell überflogen und gleich die erstbeste (und -dümmste) idee gepostet.

    mfg,
    julian



  • Dein Rückgabetyp ist schon korrekt. Du mußt nur dein Array anders erstellen.

    // statt
    string *note[5];
    // dann
    string** note = new string*[5];
    

    Ich würde hier aber lieber einen vector nehmen.



  • warum nicht einen vector<string> verwenden ?



  • sagte ich doch. 🙂



  • Braunstein schrieb:

    Du mußt nur dein Array anders erstellen.

    das war's, danke vielmals!!

    Braunstein schrieb:

    Ich würde hier aber lieber einen vector nehmen.

    hast schon recht, aber solche fehler lassen mi dann doch net ruhig schlafen - weil i mir denk "das muss doch gehen"... ging mir auch ein wenig ums prinzip bei der frage.



  • iko79 schrieb:

    ...- weil i mir denk "das muss doch gehen"... ging mir auch ein wenig ums prinzip bei der frage.

    Gründlichkeit: Guter Ansatz für einen Programmierer !
    (Wenn er dann zusätzlich noch "schnell zusammenhauen" kann, ist er perfekt 😉 )

    Gruß,

    Simon2.



  • iko79 schrieb:

    das war's, danke vielmals!!

    Bei diesem Ansatz aber bitte noch an ein delete[] an passender Stelle denken.


Anmelden zum Antworten