CAllocate

Allocates memory for a certain number of elements from the free store and 
clears the contents

Syntax
	KeyPgDeclareDeclare KeyPgFunctionFunction CAllocate KeyPgCdeclcdecl ( KeyPgByvalByVal num_elements KeyPgAsAs KeyPgUintegerUInteger, KeyPgByvalByVal 
	size KeyPgAsAs KeyPgUintegerUInteger = 1 ) KeyPgAsAs KeyPgAnyAny KeyPgPtrPtr

Usage
	result = CAllocate( num_elements [, size ] )

Parameters
	num_elements
		The number of elements to allocate memory for.
	size
		The size, in bytes, of each element.

Return Value
	If successful, the address of the start of the allocated memory is 
	returned. Otherwise, the null pointer (0) is returned.

Description
	CAllocate initializes the allocated memory with zeros.
	Consequently, CAllocate can be also directly used with KeyPgStringString or KeyPgTypeUdt 
	containing string, because the string descriptor is cleared (set to 0) 
	first.
	Similarly, CAllocate can also be used directly with KeyPgZstringZString or KeyPgWstringWString 
	because string data is created with null characters.

Example
	' Allocate and initialize space for 10 integer elements.
	Dim p As Integer Ptr = CAllocate(10, SizeOf(Integer))

	' Fill the memory with integer values.
	For index As Integer = 0 To 9
	   p[index] = (index + 1) * 10
	Next

	' Display the integer values.
	For index As Integer = 0 To 9
	   Print p[index] ;
	Next

	' Free the memory.
	Deallocate(p)
	   
Outputs:

	 10 20 30 40 50 60 70 80 90 100
		

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Callocate.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgAllocateAllocate
	* KeyPgDeallocateDeallocate
	* KeyPgReallocateReallocate

