Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

FREE-Anweisung

&pagelevel(4)&pagelevel

Funktion

Die FREE-Anweisung gibt Speicher frei, der vorher mit einer ALLOCATE-Anweisung (siehe "ALLOCATE-Anweisung") angefordert wurde.

Format


FREE {datenname-1}...


Syntaxregel

  1. datenname-1 muss von der Kategorie datenzeiger sein.

Allgemeine Regeln

Die FREE-Anweisung wird wie folgt ausgeführt:

  1. Wenn der Datenzeiger datenname-1 auf den Anfang vom Speicher zeigt, der vorher mit der ALLOCATE-Anweisung angefordert wurde, wird dieser Speicher freigegeben und der Datenzeiger datenname-1 wird auf NULL gesetzt. Die Länge des freigegebenen Speichers ist gleich der Länge des Speichers, die mit ALLOCATE angefordert wurde. Der Inhalt irgendeines Datenfeldes innerhalb des freigegebenen Speicherbereichs wird undefiniert.

  2. Wenn der Datenzeiger datenname-1 die vordefinierte Adresse NULL enthält, wird kein Speicher freigegeben.

  3. In allen anderen Fällen entsteht die Ausnahmesituation EC-STORAGE-NOT-ALLOC. datenname-1 wird nicht verändert. Ist die Überprüfung für EC-STORAGE-NOT--ALLOC eingeschaltet, so wird der zugehörige Ausnahmezustand ausgelöst und in die entsprechende USE-Prozedur, falls vorhanden, verzweigt. Bei nicht eingeschalteter Überprüfung der Ausnahmesituation oder nach Ausführung einer USE-Prozedur, die mit RESUME AT NEXT STATEMENT verlassen wird, wird der Programmlauf entsprechend Regel 4 fortgesetzt.

    Die FREE-Anweisung kann bei ausgeschalteter Überprüfung der Ausnahmesituation EC-STORAGE-NOT-ALLOC zu einem Absturz führen.

  4. Ist mehr als ein datenname-1 angegeben, dann wirkt dies, als wäre für jeden datenname-1 eine separate FREE-Anweisung in der vorgegebenen Reihenfolge angegeben worden. Entsteht durch eine dieser impliziten FREE-Anweisungen die Ausnahmesituation EC-STORAGE-NOT-ALLOC, so wird der Programmlauf (ggf. nach Rückkehr aus der entsprechenden USE-Prozedur) bei der nächsten impliziten FREE-Anweisung, falls vorhanden, fortgesetzt.