[#BloombergLP-bslma-NewDeleteAllocator-allocate-08] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/NewDeleteAllocator.adoc[NewDeleteAllocator]::allocate :relfileprefix: ../../../ :mrdocs: Allocate a block of memory of at least the specified `size` bytes. == Synopsis Declared in `<bslma_newdeleteallocator.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void* allocate(xref:BloombergLP/bslma/Allocator/size_type.adoc[size_type] size) override; ---- == Description Return a newly allocated block of memory of (at least) the specified positive `size` (in bytes). If `size` is 0, a null pointer is returned with no other effect. The alignment of the address returned is the maximum alignment for any fundamental, pointer, or enumerated type defined for this platform. The behavior is undefined unless `0 <= size`. Note that global `operator new` is _not_ called when `size` is 0 (in order to avoid having to acquire a lock, and potential contention in multi‐threaded programs). == Return Value newly allocated memory block, or null if `size` is 0 == Parameters [cols="1,4"] |=== | Name| Description | *size* | number of bytes to allocate |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#