PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche _msize() unter Linux...



Lin728
14-11-2003, 07:05
Portiere gerade ein wenig Code nach Linux, und der Typ verwendet _msize() um herauszufinden, wieviel Speicher bereits für einen Bereich allociert wurde.

Auch wenn man das natürlich selbst mitzählen könnte, würde dies den Ablauf doch verkomplizieren, und vieleicht kennt ja wer eine Lib die das schon kann, eventuell sogar die GLIBC?

wraith
14-11-2003, 08:34
Schau in malloc.h rein,iirc heißt die Funktion malloc_usable_size.
Wenn es die nicht war (oder die nicht dabei ist),nachschauen was sonst noch in malloc.h deklariert ist.
Portabel ist es aber nicht,weil es Un*x Systeme gibt,die solche Funktionen nicht mitausliefern.

Das selber mitzählen die einzige korrekte Variante ist,weißt du ja selber ;).

Ich sehe auch gerade,daß der Wert stark vom angeforderten abweichen kann.

Woolf
21-11-2003, 08:57
Bin auf ein ähnliches problem mal gestoßen, im IRC hat man mir gesagt, dass msize() das gleiche macht wie sizeof()...???
stimmt das denn nicht?

GreetZ

wraith
21-11-2003, 14:18
Original geschrieben von Woolf
Bin auf ein ähnliches problem mal gestoßen, im IRC hat man mir gesagt, dass msize() das gleiche macht wie sizeof()...???
stimmt das denn nicht?

Nein sizeof wird zur Compiletime ausgewertet,und msize ist ein Funktionsaufruf.
Damit kann sizeof schlecht die Größe an Speicherplatz berechnen,auf die ein Zeiger zeigt.
sizeof gibt die Größe des Typs zurück.