Compiler implementation of the D programming language http://dlang.org
Pure variants of C's memory allocation functions malloc
, calloc
, and realloc
and deallocation function free
.
UNIX 98 requires that errno be set to ENOMEM upon failure. https://linux.die.net/man/3/malloc However, this is irrelevant for DMD's purposes, and best practice protocol for using errno is to treat it as an out
parameter, and not something with state that can be relied on across function calls. So, we'll ignore it.
Makes a null-terminated copy of the given string on newly allocated memory. The null-terminator won't be part of the returned string slice. It will be at position n
where n
is the length of the input string.
const(char)[] s
| string to copy |
auto s1 = "foo"; auto s2 = s1.xarraydup; s2[0] = 'b'; assert(s1 == "foo"); assert(s2 == "boo"); assert(*(s2.ptr + s2.length) == '\0'); string sEmpty; assert(sEmpty.xarraydup is null);
Makes a copy of the given array on newly allocated memory.
T[] s
| array to copy |
auto s1 = [0, 1, 2]; auto s2 = s1.arraydup; s2[0] = 4; assert(s1 == [0, 1, 2]); assert(s2 == [4, 1, 2]); string sEmpty; assert(sEmpty.arraydup is null);
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_root_rmem.html