Clear

Clears or initializes some memory

Syntax
	KeyPgDeclareDeclare KeyPgSubSub Clear KeyPgCdeclcdecl ( KeyPgByrefByRef dst KeyPgAsAs KeyPgAnyAny, KeyPgByvalByVal value KeyPgAsAs KeyPgLongLong = 0, 
	KeyPgByvalByVal bytes KeyPgAsAs KeyPgUinteger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 KeyPgPtrPointer, it must be 
	dereferenced first (or else specifying in argument term the KeyPgByval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
	* KeyPgEraseErase
	* KeyPgResetReset

