sys_malloc (long size)
sys_nxalloc (long size)
Allokiert einen zusammenhängenden Speicherbereich der gegebenen Größe. Dies läßt sich zum Erstellen von Arrays dynamischer Größe verwenden.
Parameter:
size - Größe des allokierten Speicherbereichs in Bytes.
Rückgabewerte:
void* Pointer auf den allokierten Speicherbereich, oder NULL wenn das Allokieren fehlschlägt. Der Bereich wird beim Allokieren gelöscht und auf Null zurückgesetzt.
Geschwindigkeit:
Mittel (sys_malloc)
Schnell (sys_nxalloc)
Bemerkungen:
- Die sys_malloc Funktion ist eine sicherere Variante der C/C++ malloc-Funktion und des new-Operators.
- Mit sys_malloc allokierter Speicher beeinflusst sys_memory und lässt sich mit sys_free freigeben. Andernfalls gibt die Engine beim Beenden automatisch alle sys_malloc-Speicherbereiche frei.
- Mit sys_nxalloc allokierter Speicher wird aus dem Level-Cache genommen und kann per level_free partiell freigegeben werden. Die Engine gibt beim Laden (level_load) automatisch sämtliche sys_nxalloc-Speicherbereiche frei. Solange der Nexus nicht überschritten ist, ist sys_nxalloc um einiges schneller als sys_malloc und funktioniert unabhängig vom verfügbaren PC-Speicher, übersteht aber keinen Levelwechsel.
- Wenn per sys_marker eine Marke gesetzt wurde, werden nicht-freigebene Speicherbereicht im acklog.txt beim Beenden angezeigt. Wenn über einen Speicherbereich hinaus geschrieben wurde, wird dies erkannt und ebenfalls im acklog.txt dokumentiert.
- Um große Speichergrößen zu ermögllichen, ist der size-Parameter long und nicht var.
Beispiel:
Siehe ent_nextvertex.
Siehe auch:
sys_free, level_free, sizeof, sys_memory, nexus
► latest
version online