Dynamic memory extensions - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# Dynamic memory extensions

From cppreference.com
< c‎ | experimental

Extensions to the C Library Part II: Dynamic Allocation Functions, ISO/IEC TR 24731-2:2010, defines the following new components for the C standard library:

__STDC_ALLOC_LIB__ | integer constant of type long indicating conformance level (macro constant)
Defined in header `<stdio.h>`
fmemopen | opens a fixed-size memory buffer as an I/O stream (function)
open_memstreamopen_wmemstream | opens a dynamically resized memory buffer as an I/O stream (function)
asprintfaswprintfvasprintfvaswprintf | variants of sprintf etc that write to automatically-allocated buffer and return a pointer to it (function)
getdelimgetwdelim | read from a stream into a dynamically-allocated buffer until the delimiter (function)
getlinegetwline | read from a stream into a dynamically-allocated buffer until end of line (function)
Defined in header `<string.h>`
strdup | allocate a copy of a string (function)
strndup | allocate a copy of a string up to specified size (function)

This library extension also introduces assignment-allocation character `m` for use with `%s`, `%[`, and `%c` conversion specifiers in fscanf and fwscanf family of functions.

### [edit] Notes

The functions `fmemopen`, `open_memstream`, `open_wmemstream`, `getdelim`, `getline`, `strdup`, `strndup`, and the extensions to `fscanf` are available in POSIX (ISO/IEC 9945:2003).

The functions `asprintf` and `vasprintf` are available in Linux Standard Base (ISO/IEC IS 23360:2006)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/experimental/dynamic&oldid=75071"