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)
