[#BloombergLP-bdlma-ConcurrentAllocatorAdapter-allocate-0a]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::xref:BloombergLP/bdlma/ConcurrentAllocatorAdapter.adoc[ConcurrentAllocatorAdapter]::allocate
:relfileprefix: ../../../
:mrdocs:

Return a newly allocated block of memory of the specified `numBytes`&period;

== Synopsis

Declared in `&lt;bdlma&lowbar;concurrentallocatoradapter&period;h&gt;`

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

== Description

Return a newly&hyphen;allocated block of memory of (at least) the specified `numBytes`&period; If `numBytes` is 0, a null pointer is returned with no other effect&period; If this allocator cannot return the requested number of bytes, then it will throw a `bsl&colon;&colon;bad&lowbar;alloc` exception in an exception&hyphen;enabled build, or else will abort the program in a non&hyphen;exception build&period; Note that the alignment of the address returned conforms to the platform requirement for any object of the `numBytes`&period;

== Return Value

address of the newly allocated block, or a null pointer if `numBytes` is 0

== Parameters

[cols="1,4"]
|===
| Name| Description
| *numBytes*
| number of bytes to allocate
|===


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