Array durchweg mit NULL initialisieren?!



  • hi @all

    hab ein problem was die initialisierung eines arrays angeht, folgendes:

    ich habe ein array vom typ CString auf dem heap angelegt, auf welches ich mit einem pointer zeige. dieses array möchte ich durchweg mit NULL initialisieren, wenn möglich ohne schleife... in C geht dies ohne weiteres.

    kann mir vll jemand sagen, ob bzw. wie ich ein array kurz und knapp komplett initialisieren kann? 😕

    thx

    deflow



  • Soweit ich weiß, wird doch bei

    CString* cstr = new CString[10];
    

    der Konstruktor für alle Elemente aufgerufen und diese mit einem Leerstring gefüllt. Wenn du NULL für einen überprüfung brauchst, dann kannst du das doch getrost ändern und einfach auf "" prüfen oder so.



  • PuppetMaster2k schrieb:

    [...]und einfach auf "" prüfen oder so.

    IsEmpty heißt die Funktion von CString dafür. 🙂



  • PuppetMaster2k schrieb:

    Soweit ich weiß, wird doch bei

    CString* cstr = new CString[10];
    

    der Konstruktor für alle Elemente aufgerufen und diese mit einem Leerstring gefüllt. Wenn du NULL für einen überprüfung brauchst, dann kannst du das doch getrost ändern und einfach auf "" prüfen oder so.

    nein, geht hier schlecht, weil ich eine datei zeilenweise in das array schreibe. wenn ich dann "" zur prüfung nehme und ich auf eine leerzeile stoße, bricht er das auslesen ab, obwohl noch mehr daten im array wären. 😉

    greetz deflow



  • ein Array von CStrings kann nicht NULL sein, weils nun mal CString-Objekte sind ,die da angelegt werden. Du kannst nur ein Array von CString* machen, DA kann dann natürlich nen NULL-Zeiger dabei sein.



  • Wie wäre es denn mit CStringArray? Das kannst du nach seiner Größe fragen. 🙂



  • sorry, mein fehler, ich muss das mal etwas besser beschreiben was ich machen will...

    und zwar:

    habe ich das besagte array vom typ CString auf dem heap erstellt.
    dann lese ich eine datei zeilenweise ein und schreibe jede zeile in ein array-feld.

    möchte ich das array wieder ausgeben und die abfrage aber mit "" mache, bricht er mir bei einer leerzeile ab, obwohl noch daten vorhanden sind...

    wie kann ich das anstellen?

    thx deflow



  • Wenn du beim normalen C-Array bleiben willst würde ich mir irgendwo die Zeilenanzahl merken. 😃
    Sonst eben umsteigen auf CStringArray.



  • ich benutze doch schon CString



  • CStringArray ist eine Klasse der MFC. 😃
    Ein CArray mit CStrings drin. Und CArray ist etwas komfortabler in der Handhabung als die C-Arrays, die du nutzt.



  • post doch mal den entsprechenden Code


Anmelden zum Antworten