MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SYNOPSIS |
| 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 | |
| 8 | BESCHREIBUNG |
| 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 | |
| 25 | BEISPIEL |
| 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 | |
| 33 | AENDERUNGEN |
| 34 | LDMud 3.2.9 fuehrte den Anfangswert <init_value> und die |
| 35 | Initialisierung von mehrdimensionalen Arrays ein. |
| 36 | |
| 37 | SIEHE AUCH |
| 38 | sizeof(E) |