blob: c591c5efcb84244389118ddb7d7622a4c41671ef [file] [log] [blame]
SYNOPSIS
*mixed allocate(int size);
*mixed allocate(int size, mixed init_value);
*mixed allocate(*int sizes);
*mixed allocate(*int sizes, mixed init_value);
BESCHREIBUNG
Alloziert ein Array von <size> Elementen. Die Anzahl Elemente muss
groesser sein als 0, darf aber das Systemmaximum (normalerweise 1000)
nicht uebersteigen. Wird <init_value> angegeben, wird allen Elementen
dieser als Anfangswert zugewiesen. Wenn <init_value> ein Mapping oder
ein Array ist, wird fuer jedes Element eine einfache Kopie erstellt.
Wird <init_value> nicht angegeben, sind alle Elemente 0.
In der zweiten Form (mit einem Feld von <sizes> anstelle nur einer
<size>) erzeugt allocate() ein mehrdimensionales Array, ein Array aus
Arrays.
Heute wird allocate() kaum mehr benoetigt, weil Arrays mit dem
+-Operator addiert werden koennen und mit dem ({})-Operator
initialisiert. Der einzige Nutzen der Funktion ist, grosse leere
oder initialisierte Arrays zu erzeugen.
BEISPIEL
string *buffer;
buffer = allocate(50);
buffer = allocate(50, "");
buffer = allocate( ({ 2, 3 }) )
--> ({ ({ 0, 0, 0 }), ({ 0, 0, 0 }) })
AENDERUNGEN
LDMud 3.2.9 fuehrte den Anfangswert <init_value> und die
Initialisierung von mehrdimensionalen Arrays ein.
SIEHE AUCH
sizeof(E)