Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - REALLOCATE

Referenz-Navigation

 

Syntax: REALLOCATE (Pointer, Bytes)
Typ: Funktion
Kategorie: Speicher

REALLOCATE ändert die Größe eines reservierten Speicherbereichs.

REALLOCATE ist kein Teil der FreeBASIC Runtime Library, sondern ein Alias von Externer Link!realloc der C-Lib.
Achtung: Es kann nicht garantiert werden, dass diese Funktion auf allen Plattformen Multithreading unterstützt, d.h. thread-safe ist. Unter Windows und Linux sind aktuell durch die verwendeten Implementationen der Betriebssysteme aber keine Probleme zu erwarten.

Beispiel:

DIM a AS INTEGER PTR, b AS INTEGER PTR, i AS INTEGER

a = ALLOCATE(5 * LEN(INTEGER))          ' Speicher für fünf INTEGER-Stellen reservieren
FOR i = 0 TO 4
  a[i] = (i + 1) * 2                    ' Werte in den Speicher schreiben
NEXT i

b = REALLOCATE( a, 10 * LEN(INTEGER) )  ' Speicher für fünf zusätzliche Werte reservieren
FOR i = 5 TO 9
  b[i] = (i + 1) * 2                    ' Zusätzliche Werte in den Puffer schreiben
NEXT i

FOR i = 0 TO 9                          ' Werte ausgeben
  PRINT b[i];
NEXT i

DEALLOCATE b                            ' Speicher freigeben

SLEEP                                   ' Auf Tastendruck warten

Hinweis:
Wenn Speicher mit REALLOCATE vergrößert wird, ist beim Umgang mit BefehlsreferenzeintragSTRINGs auf das gleiche Verhalten wie bei BefehlsreferenzeintragALLOCATE zu achten. Der neue Speicherbereich wird nicht mit Nullen überschrieben, sodass Probleme auftreten können. Um dem entgegenzuwirken kann der neu reservierte Speicherbereich etwa mit BefehlsreferenzeintragCLEAR auf null gesetzt werden.

Unterschiede zu QB: neu in FreeBASIC

Plattformbedingte Unterschiede:
Es kann nicht garantiert werden, dass die Prozedur auf allen Plattformen thread-safe ist.

Unterschiede unter den FB-Dialektformen:
In der Dialektform Befehlsreferenzeintrag-lang qb steht REALLOCATE nicht zur Verfügung und kann nur über __REALLOCATE aufgerufen werden.

Siehe auch:
BefehlsreferenzeintragALLOCATE, BefehlsreferenzeintragCALLOCATE, BefehlsreferenzeintragDEALLOCATE, BefehlsreferenzeintragPointer, BefehlsreferenzeintragSpeicher


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 05.08.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 05.04.2014 von RedakteurMOD gespeichert.
  Versionen Versionen