##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::malloc

From cppreference.com
< cpp‎ | memory‎ | c

Defined in header `<cstdlib>` |  |
void* malloc( std::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 scalar 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)

### [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 std::free().

### [edit] Notes

This function does not call constructors or initialize memory in any way. Thus preferred method of memory allocation is `new` expression.

### [edit] Example

Run this code

    #include <cstdlib>
    #include <iostream>

    int main()
    {
        // Allocate an array of 4 integers
        int *array = static_cast<int *>(std::malloc(4 * sizeof(int)));

        if (array != nullptr) {
            for (int arrayIdx = 0; arrayIdx < 4; ++arrayIdx) {
                array[arrayIdx] = 2 * ( arrayIdx + 1 );
            }

            for (int arrayIdx = 0; arrayIdx < 4; ++arrayIdx) {
                std::cout << "Array item " << ( arrayIdx + 1 ) << " = " << array[arrayIdx] << '\n';
            }
            std::free(array);
        }
    }

Possible output:

    Array item 1 = 2
    Array item 2 = 4
    Array item 3 = 6
    Array item 4 = 8

### [edit] See also

operator new operator new[] | allocation functions (function) [edit]
get_temporary_buffer | obtains uninitialized storage (function template) [edit]
C documentation for malloc

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