SYNOPSIS
mapping m_allocate(int size, int width);
BESCHREIBUNG
Die Funktion reserviert Speicher fuer ein Mapping. <size> ist die
Anzahl Eintraege (d.h. die Anzahl Keys), <width> ist die Anzahl
Dateneintraege pro Key. Wird <width> nicht angegeben, werden Keys
mit einem Datenelement erzeugt.
Die Funktion ist nur sinnvoll, wenn man ein Mapping erzeugt, dessen
ungefaehre Groesse von vornherein bekannt ist, um so den Overhead
bei der Speicherallokation zu minimieren. Wenn nicht alle allozierten
Datenelemente mit Daten bestueck werden, werden die Ueberbleibsel
am Ende des Funktionsaufrufs freigegeben. m_allocate() ist auch
nuetzlich, wenn ein Mapping bestimmter Breite erzeugt werden soll,
ohne bereits die Daten zu den Keys bereit zu stellen.
Wenn bloss ein leeres Mapping bestimmter Breite erzeugt werden soll,
so kann folgende Notation verwendet werden:
([ ]) : erzeugt ein leeres Mapping mit Breite 1.
([:<width>]) : erzeugt ein leeres Mapping der Breite <width>,
wobei <width> eine beliebige Anweisung sein kann, die eine
Integerzahl zurueck liefert. Tatsaechlich wird diese Notation
als 'm_allocate(0, <width>)' kompiliert.
BEISPIELE
m_allocate(3,7) -> erzeugt ein Mapping mit 7 Werten pro Key und Platz
fuer 3 Eintraege.
([:2*3]) -> entspricht m_allocate(0,6).
AENDERUNGEN
Umbenannt von allocate_mapping() in LDMud 3.2.6.
Die ([:<width>]) Notation wurde in 3.2.9 eingefuehrt.
SIEHE AUCH
mappings(LPC), walk_mapping(E), get_type_info(E), m_reallocate(E)