Clear

Clears or initializes some memory

Syntax
   Declare Sub Clear cdecl ( ByRef dst As Any, ByVal value As Long = 0, 
   ByVal bytes As UInteger )

Usage
   Clear( dst, [value], bytes )

Parameters
   dst
      starting address of some memory
   value
      the value to set all bytes equal to
   bytes
      number of bytes to clear

Description
   Clear sets one or more bytes in memory to a certain value (the default 
   value is zero (0) if not specified). The starting address is taken from 
   a reference to a variable or array element.

   NOTE: In order to clear memory referenced by a Pointer, it must be 
   dereferenced first (or else specifying in argument term the ByVal 
   keyword in front of the pointer name). Otherwise, Clear will try to 
   clear the bytes at the pointer variable's memory location.

Example
   'create an array with 100 elements
   Dim array(0 To 99) As Integer

   'clear the contents of the array to 0, starting with the first element
   Clear array(0), , 100 * SizeOf(Integer)

   'allocate 20 bytes of memory
   Dim As Byte Ptr p = Allocate(20)

   'set each of the first ten bytes to 0
   Clear *p, 0, 10

   'set each of the next ten bytes to 42
   Clear p[10], 42, 10

   'check the values of the allocated bytes
   For i As Integer = 0 To 19
      Print i, p[i]
   Next

   'deallocate memory
   Deallocate p

Differences from QB
   * The behavior and usage is new to FreeBASIC
   * The keyword CLEAR was used in QB to erase all variables, close all 
     files, and optionally change the stack size. This use is not supported 
     in FreeBASIC.

See also
   * Erase
   * Reset

