NAME SYNOPSIS FUNCTION DESCRIPTIONS AcquireMemory CloneMemory LiberateMemory ReacquireMemory # 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: destination: The destination. source: The source. size: The size of the memory in bytes to allocate. ## LiberateMemory LiberateMemory() frees memory that has already been allocated, and NULL's 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. "Image manipulation software that works like magick"