Länge eines dynamischen Feldes



  • Wenn du den Speicher mit malloc geholt hast, kannst du die allozierte Größe im Nachhinein noch mit _msize nachsehen.
    Edit: Bei LocalAlloc/GlobalAlloc gehts auch, mit LocalSize/GlobalSize. Nur bei new gehts nicht...
    Edit2: Obowhl es wahrscheinlich auch gehen würde wenn man wüsste, wie new den Speicher alloziert...
    Edit3: Für deine eigenen Klassen kannst du den new-Operator auch überladen und den Speicher mit malloc holen, dann kannst du auch mit _msize die Größe feststellen... Allerdings weißt du die Größe auch mit sizeof(Class)^^



  • Badestrand schrieb:

    Wenn du den Speicher mit malloc geholt hast, kannst du die allozierte Größe im Nachhinein noch mit _msize nachsehen.
    Edit: Bei LocalAlloc/GlobalAlloc gehts auch, mit LocalSize/GlobalSize. Nur bei new gehts nicht...

    Das ist aber kein ISO-C++.



  • lolz schrieb:

    Das ist aber kein ISO-C++.

    Ich weiß aber ich sehe keinen Grund, malloc nicht in C++ Programmen zu verwenden. Schon allein wegen realloc.
    Btw: Habs grad ausprobiert, mit meinem Compiler (MSVC++.NET 2003) gibt er die mit new geholte Größe auch mit _msize aus.



  • Und ich sehe keinen Grund, warum man nicht std::vector benutzen sollte.

    Tstssss....



  • Badestrand schrieb:

    lolz schrieb:

    Das ist aber kein ISO-C++.

    Ich weiß aber ich sehe keinen Grund, malloc nicht in C++ Programmen zu verwenden. Schon allein wegen realloc.
    Btw: Habs grad ausprobiert, mit meinem Compiler (MSVC++.NET 2003) gibt er die mit new geholte Größe auch mit _msize aus.

    _msize ist kein ISO-C++, malloc schon..



  • Cool das ist genau das was ich gesucht habe! Danke!
    Was ist daran so schlimm, dass es ein ISO-C++?

    Und ich sehe keinen Grund, warum man nicht std::vector benutzen sollte.

    Vector ist zu umfangreich :).

    mfg.



  • 9taleFox schrieb:

    Was ist daran so schlimm, dass es ein ISO-C++?

    Z.B. dass es bei der nächsten Compilerversion nicht mehr funktionieren könnte? 😉



  • Dann kann man immer noch auf LocalAlloc / LocalReAlloc umsteigen 😃



  • Sofern das OS diese stellt



  • 😞 Vergesse immer, dass es nicht nur Windows gibt 😃



  • Badestrand schrieb:

    lolz schrieb:

    Das ist aber kein ISO-C++.

    Ich weiß aber ich sehe keinen Grund, malloc nicht in C++ Programmen zu verwenden....

    Och, ich finde diese Geschichte mit Konstruktoren/Destruktoren, Typsicherheit und so schon ganz schön...
    Kann sein, dass man als Windowshacker das nicht so braucht, aber bei größeren Teilen (evtl. auf mehreren Plattformen), macht sich das schon ganz gut - auch, wenn man einheitliche Semantik und Syntax hat ...
    Es gibt anscheinend genug Leute, die gerne einen Standard haben, um einen festzulegen. 😉

    Gruß,

    Simon2.


Anmelden zum Antworten