malloc - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# malloc

From cppreference.com
< c‎ | memory

Defined in header `<stdlib.h>` |  |
void* malloc( size_t size ); |  |

Allocates `size` bytes of uninitialized storage.

If allocation succeeds, returns a pointer to the lowest (first) byte in the allocated memory block that is suitably aligned for any object type.

If `size` is zero, the behavior is implementation defined (null pointer may be returned, or some non-null pointer may be returned that may not be used to access storage).

`malloc` is thread-safe: it behaves as though only accessing the memory locations visible through its argument, and not any static storage. A previous call to free or realloc that deallocates a region of memory synchronizes-with a call to malloc that allocates the same or a part of the same region of memory. This synchronization occurs after any access to the memory by the deallocating function and before any access to the memory by `malloc` | (since C11)

### [edit] Parameters

size | - | number of bytes to allocate

### [edit] Return value

Pointer to the beginning of newly allocated memory or null pointer if error has occurred. The pointer must be deallocated with free().

### [edit] Example

Run this code

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {
        /* Allocate an array of four integers. */
        int *pa = malloc(4*sizeof(int));
        if (pa == NULL) {
           printf("malloc() failed in file %s at line # %d", __FILE__,__LINE__);
           exit(1);
        }

        /* Initialize array A with values. */
        for (int ndx=0; ndx < 4; ndx++)
            pa[ndx] = ndx;

        /* Print one of the array elements. */
        printf("pa[3] = %d\n", pa[3]);

        /* Deallocate array pa. */
        free(pa);
        return 0;
    }

Output:

    pa[3] = 3

### [edit] See also

C++ documentation for malloc

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/memory/malloc&oldid=71400"