Länge eines dynamischen Feldes
-
Du musst dir merken, wieviel Speicher du dafür alloziert hast.
-
Ok, danke. Ich dachte es könnte was in der Art wie strlen() geben.
-
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.