Movatterモバイル変換


[0]ホーム

URL:


D Logo
Menu
Search

Library Reference

version 2.111.0

overview

Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinga local clone.

std.experimental.allocator.mallocator

The C heap allocator.

Sourcestd/experimental/allocator/mallocator.d

structMallocator;
The C heap allocator.
Examples:
auto buffer =Mallocator.instance.allocate(1024 * 1024 * 4);scope(exit)Mallocator.instance.deallocate(buffer);//...
enum uintalignment;
The alignment is a static constant equal toplatformAlignment, which ensures proper alignment for any D data type.
pure nothrow @nogc @trusted void[]allocate(size_tbytes) shared const;

pure nothrow @nogc @system booldeallocate(void[]b) shared const;

pure nothrow @nogc @system boolreallocate(ref void[]b, size_ts) shared const;
Standard allocator methods per the semantics defined above. Thedeallocate andreallocate methods are@system because they may move memory around, leaving dangling pointers in user code. Somewhat paradoxically,malloc is@safe but that's only useful to safe programs that can afford to leak memory allocated.
static shared Mallocatorinstance;
Returns the global instance of this allocator type. The C heap allocator is thread-safe, therefore all of its methods andit itself areshared.
structAlignedMallocator;
Aligned allocator using OS-specific primitives, under a uniform API.
Examples:
auto buffer =AlignedMallocator.instance.alignedAllocate(1024 * 1024 * 4,    128);scope(exit)AlignedMallocator.instance.deallocate(buffer);//...
enum uintalignment;
The default alignment isplatformAlignment.
pure nothrow @nogc @trusted void[]allocate(size_tbytes) shared;
Forwards toalignedAllocate(bytes, platformAlignment).
pure nothrow @nogc @trusted void[]alignedAllocate(size_tbytes, uinta) shared;
Usesposix_memalign on Posix and__aligned_malloc on Windows.
pure nothrow @nogc @system booldeallocate(void[]b) shared;
Callsfree(b.ptr) on Posix and__aligned_free(b.ptr) on Windows.
pure nothrow @nogc @system boolreallocate(ref void[]b, size_tnewSize) shared;

pure nothrow @nogc @system boolalignedReallocate(ref void[]b, size_ts, uinta) shared;
Forwards toalignedReallocate(b, newSize, platformAlignment). Should be used with blocks obtained withallocate otherwise the custom alignment passed withalignedAllocate can be lost.
static shared AlignedMallocatorinstance;
Returns the global instance of this allocator type. The C heap allocator is thread-safe, therefore all of its methods andinstance itself areshared.
Copyright © 1999-2025 by theD Language Foundation | Page generated byDdoc on Fri Oct 10 22:10:33 2025

[8]ページ先頭

©2009-2025 Movatter.jp