[#BloombergLP-bdlma-SequentialPool-allocateAndExpand]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::xref:BloombergLP/bdlma/SequentialPool.adoc[SequentialPool]::allocateAndExpand
:relfileprefix: ../../../
:mrdocs:

Return a block of at least `&ast;size` bytes and load the actual size&period;

== Synopsis

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

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

== Description

Return the address of a contiguous block of memory of at least the specified `&ast;size` (in bytes), and load the actual amount of memory allocated in `&ast;size`&period; If `&ast;size` is 0, return 0 with no effect&period; If the allocation request exceeds the remaining free memory space in the current internal buffer, use the allocator supplied at construction to allocate a new internal buffer, then allocate memory from the new buffer&period;

== Return Value

address of a contiguous block of at least `&ast;size` bytes, or 0 if `&ast;size` is 0

== Parameters

[cols="1,4"]
|===
| Name| Description
| *size*
| requested size in bytes&semi; loaded with the actual size
|===


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