AllocateStructure()

Syntax

*Eintrag.StrkturName = AllocateStructure(StrukturName)
Beschreibung
Reserviert einen neuen dynamischen Struktur-Eintrag. Dieser dynamische Struktur-Eintrag wird richtig initialisiert und ist bereit zur Verwendung, ohne dass InitializeStructure() aufgerufen werden muss. Um auf die Struktur-Daten zuzugreifen, muss ein Zeiger verknüpft mit dem angegebenen 'StrukturName' verwendet werden.

Parameter

StrukturName Der Name der für die Erstellung des neuen dynamischen Eintrags zu verwendenden Struktur. Die Struktur muss bereits erstellt worden sein.

Rückgabewert

Die Adresse des neuen dynamischen Struktur-Eintrags, andernfalls Null.

Anmerkungen

Dieser Befehl ist für fortgeschrittene Anwender und sollte für die meisten Programme nicht benötigt werden. Es ist oftmals die bessere Wahl, ein strukturiertes Array, eine Liste oder eine Map zu verwenden, um dynamisch strukturierte Einträge zu speichern.

FreeStructure() kann verwendet werden, um den dynamisch strukturierten Eintrag freizugeben. Alle dynamischen Strukturen werden automatisch freigegeben, wenn das Programm endet.

Wenn das Programm bei diesem Befehl abstürzt, ist dies regelmäßig das Resultat eines Speicherfehlers ("memory corruption") zu einem früheren Zeitpunkt im Programm, indem dort in einen Bereich außerhalb des reservierten Speicherbereichs geschrieben wurde. Solch ein Fehler kann mit Hilfe des Purifier Debugger-Tools auf die eigentliche Ursache eingegrenzt werden.

Beispiel

  Structure People
    Name$
    List Friends$()
  EndStructure
  
  *DynamicPeople.People = AllocateStructure(People)
  *DynamicPeople\Name$ = "Fred"
  AddElement(*DynamicPeople\Friends$())
  *DynamicPeople\Friends$() = "Stef"
  
  Debug *DynamicPeople\Name$
  Debug *DynamicPeople\Friends$()
  
  FreeStructure(*DynamicPeople)

Siehe auch

FreeStructure()

Unterstützte OS

Alle

<- AllocateMemory() - Memory Inhaltsverzeichnis - CompareMemory() ->