blob: c591c5efcb84244389118ddb7d7622a4c41671ef [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
2 *mixed allocate(int size);
3 *mixed allocate(int size, mixed init_value);
4
5 *mixed allocate(*int sizes);
6 *mixed allocate(*int sizes, mixed init_value);
7
8BESCHREIBUNG
9 Alloziert ein Array von <size> Elementen. Die Anzahl Elemente muss
10 groesser sein als 0, darf aber das Systemmaximum (normalerweise 1000)
11 nicht uebersteigen. Wird <init_value> angegeben, wird allen Elementen
12 dieser als Anfangswert zugewiesen. Wenn <init_value> ein Mapping oder
13 ein Array ist, wird fuer jedes Element eine einfache Kopie erstellt.
14 Wird <init_value> nicht angegeben, sind alle Elemente 0.
15
16 In der zweiten Form (mit einem Feld von <sizes> anstelle nur einer
17 <size>) erzeugt allocate() ein mehrdimensionales Array, ein Array aus
18 Arrays.
19
20 Heute wird allocate() kaum mehr benoetigt, weil Arrays mit dem
21 +-Operator addiert werden koennen und mit dem ({})-Operator
22 initialisiert. Der einzige Nutzen der Funktion ist, grosse leere
23 oder initialisierte Arrays zu erzeugen.
24
25BEISPIEL
26 string *buffer;
27 buffer = allocate(50);
28 buffer = allocate(50, "");
29
30 buffer = allocate( ({ 2, 3 }) )
31 --> ({ ({ 0, 0, 0 }), ({ 0, 0, 0 }) })
32
33AENDERUNGEN
34 LDMud 3.2.9 fuehrte den Anfangswert <init_value> und die
35 Initialisierung von mehrdimensionalen Arrays ein.
36
37SIEHE AUCH
38 sizeof(E)