[#BloombergLP-bslma-Allocator-do_deallocate]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/Allocator.adoc[Allocator]::do&lowbar;deallocate
:relfileprefix: ../../../
:mrdocs:

Return the memory block at the specified `p` address, having the specified `bytes` and specified `alignment`, back to this allocator&period; Unless overriden in a derived class, this function will forward the deallocation request to the `deallocate` virtual function, padding `bytes` and adjusting `p` as necessary to account for `alignment` values other than the natural alignment for an object of size `bytes`&period; The behavior is undefined unless `address` is a block allocated from this allocator object using the same `bytes` and `alignment` and not already deallocated&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
virtual
void
do&lowbar;deallocate(
    void* p,
    std::size&lowbar;t bytes,
    std::size&lowbar;t alignment) override;
----


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