# NNS_FndAllocFromExpHeapEx

## Syntax

      #include <nnsys/fnd.h>

      void*   NNS_FndAllocFromExpHeapEx(
                  NNSFndHeapHandle    heap,
                  u32                 size,
                  int                 alignment);

## Arguments

heap | Extended heap handle
size | Memory block size (in bytes)
alignment | Memory block alignment. Can take any of the following values: 4, 8, 16 , 32, -4, -8, -16, -32.

## Return Values

When the memory block has been allocated, it returns the starting address of that memory block. When the memory cannot be allocated, NULL is returned.

## Description

Allocates a memory block from the extended heap. The alignment of the memory block is determined by `alignment`. If the alignment value is negative, the memory block will be allocated from the back of the heap's empty region.

The size of the memory block may be larger than desired if the memory block was able to be allocated. In order to determine the actual allocated size (in bytes), use the `NNS_FndGetSizeForMBlockExpHeap()` function.

## See Also

`NNS_FndAllocFromExpHeap, NNS_FndFreeToExpHeap, NNS_FndCreateExpHeap, NNS_FndCreateExpHeapEx
`

## Revision History

2004/04/01 Initial version.

CONFIDENTIAL