- NAME
- SYNOPSIS
- FUNCTION DESCRIPTIONS
  - AcquireMemory
  - CopyMemory
  - LiberateMemory
  - ReacquireMemory

# NAME

memory - ImageMagick Memory Allocation Methods

# SYNOPSIS

void * AcquireMemory( const size_t size );

void * CopyMemory( 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.

## CopyMemory

> CopyMemory() 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 CopyMemory method is:

> void *CopyMemory ( 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.

The format of the LiberateMemory method is:

> void LiberateMemory ( void **memory );

A description of each parameter follows:

  span:
    A pointer to a block 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.