C++ Programming/Code/Standard C Library/Memory

From Wikibooks, open books for an open world
Jump to: navigation, search

Standard C Memory Management[edit]

This section will cover memory management elements from the Standard C Library.

Note:
It is recommended to use the new and delete operators instead of these functions, as they provide additional control over the creation of objects.

calloc[edit]

Syntax
#include <cstdlib>
void *calloc( size_t num, size_t size);

The function calloc() allocates a block of memory that can store num objects of size size. In addition, the block of memory allocated is set to all zeros.

If the operation fails, calloc() returns NULL.

Related topics
free - malloc - realloc

free[edit]

Syntax
#include <cstdlib>
void free( void *p);

The function free() releases a previously allocated block from a call to calloc, malloc, or realloc.

Related topics
calloc - malloc - realloc

malloc[edit]

Syntax
#include <cstdlib>
void *malloc( size_t s );

The function malloc() allocates a block of memory of size s. The memory remains uninitialized.

If the operation fails, malloc() returns NULL.

Related topics
calloc - free - realloc

realloc[edit]

Syntax
#include <cstdlib>
void *realloc( void *p, size_t s);

The function realloc() resizes a block created by malloc() or calloc(), and returns a pointer to the new memory region.

If the resize operation fails, realloc() returns NULL and leaves the old memory region intact.

Note:
realloc() does not have a corresponding operator in C++ - however, this is not required since the standard template library already provides the necessary memory management for most usages.

Related topics
calloc - free - malloc