Pair


NAME

memory - Memory Allocation


SYNOPSIS

void * AcquireMemory( const size_t size );

void * CloneMemory( void *destination, const void *source, const size_t size );

void LiberateMemory( void ** memory );

void ReacquireMemory( void ** memory, const size_t size );


FUNCTION DESCRIPTIONS

AcquireMemory

AcquireMemory() returns a pointer to a block of memory at least size bytes suitably aligned for any use.

The format of the AcquireMemory method is:

void *AcquireMemory ( const size_t size );

A description of each parameter follows:

size:
The size of the memory in bytes to allocate.

CloneMemory

CloneMemory() copies size bytes from memory area source to the destination. Copying between objects that overlap will take place correctly. It returns destination.

The format of the CloneMemory method is:

void *CloneMemory ( void *destination, const void *source, const size_t size );

A description of each parameter follows:

size:
The size of the memory in bytes to allocate.

LiberateMemory

LiberateMemory() frees memory that has already been allocated, and NULLs the pointer to it.

The format of the LiberateMemory method is:

void LiberateMemory ( void **memory );

A description of each parameter follows:

memory:
A pointer to a block of memory to free for reuse.

ReacquireMemory

ReacquireMemory() changes the size of the memory and returns a pointer to the ( possibly moved ) block. The contents will be unchanged up to the lesser of the new and old sizes.

The format of the ReacquireMemory method is:

void ReacquireMemory ( void **memory, const size_t size );

A description of each parameter follows:

memory:
A pointer to a memory allocation. On return the pointer may change but the contents of the original allocation will not.

size:
The new size of the allocated memory.