[#BloombergLP-bslma-NewDeleteAllocator-allocate-08]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/NewDeleteAllocator.adoc[NewDeleteAllocator]::allocate
:relfileprefix: ../../../
:mrdocs:

Return a newly allocated block of memory of (at least) the specified positive `size` (in bytes)&period; If `size` is 0, a null pointer is returned with no other effect&period; The alignment of the address returned is the maximum alignment for any fundamental, pointer, or enumerated type defined for this platform&period; The behavior is undefined unless `0 &lt;&equals; size`&period; 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&hyphen;threaded programs)&period;

== Synopsis

Declared in `&lt;bslma&lowbar;newdeleteallocator&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
virtual
void*
allocate(xref:BloombergLP/bslma/Allocator/size_type.adoc[size&lowbar;type] size) override;
----


[.small]#Created with https://www.mrdocs.com[MrDocs]#
