# Juliet\include\Core\Memory\Allocator

## Source Files
- Header: `Juliet\include\Core\Memory\Allocator.h`
- Source: `Juliet\src\Core\Memory\Allocator.cpp`

## AI Description
This C++ component provides a set of functions for managing dynamic memory allocation and deallocation in the Juliet framework. The primary purpose is to ensure that memory is allocated correctly and safely, handling edge cases such as zero-sized allocations. The `Malloc` function allocates uninitialized memory, while `Calloc` initializes it to zero. The `Realloc` function allows resizing existing memory blocks. The component includes a template version of the `Free` function to handle different types of pointers, ensuring that the pointer is set to `nullptr` after deallocation.

## Symbols

### Namespace `Juliet`

#### Functions & Methods
- `// Uninitialized allocation
    JULIET_API void* Malloc(size_t elem_size)`
- `// Initialized to 0 allocation
    JULIET_API void* Calloc(size_t nb_elem, size_t elem_size)`
- `JULIET_API void* Realloc(void* memory, size_t newSize)`

