Wie kann ich die Größe eines mit malloc () zugewiesenen Speicherblocks ermitteln? [Duplikat]

Mögliche Duplikate:
Wie kann ich die Größe eines Arrays von einem Zeiger in C erhalten?
Gibt es eine Möglichkeit, die Größe eines C ++ - Arrays programmgesteuert zu bestimmen? Und wenn nicht, warum?

Ich erhalte einen Zeiger auf einen Teil des zugewiesenen Speichers aus einer C-Style-Funktion. Nun wäre es für Debugging-Zwecke wirklich interessant zu wissen, wie groß der zugewiesene Speicherblock ist, auf den dieser Zeiger zeigt.

Gibt es etwas Eleganteres, als eine Ausnahme zu provozieren, indem man blind über ihre Grenzen rennt?

Vielen Dank im Voraus, Andreas

BEARBEITEN:

Ich verwende VC ++ 2005 unter Windows und GCC 4.3 unter Linux

EDIT2:

ich habe_msize unter VC ++ 2005 Es kommt leider zu einer Ausnahme im Debug-Modus ....

EDIT3:

Gut. Ich habe versucht, wie ich oben mit der Ausnahme beschrieben habe, und es funktioniert. Zumindest während des Debuggens und der Sicherstellung, dass ich unmittelbar nach dem Aufruf der Bibliothek die Puffergrenzen überschreite. Klappt wunderbar.

Es ist einfach nicht elegant und in keiner Weise im Produktionscode verwendbar.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage