Skip to content

Latest commit

 

History

History
61 lines (46 loc) · 2.29 KB

deallocate.md

File metadata and controls

61 lines (46 loc) · 2.29 KB

deallocate

  • memory[meta header]
  • std[meta namespace]
  • allocator[meta class]
  • function[meta id-type]
void deallocate(pointer p, size_type n);                // C++17 まで
constexpr void deallocate(pointer p, size_type n);      // C++20 から

概要

メモリを解放する。

事前条件

  • C++20まで
    • pは、allocate()によって確保されたポインタ値であること。nは、アロケートされたpのサイズと同じであること
  • C++23以降
    • pallocate_at_least()によって確保されたポインタ値である場合、allocate_at_least()の戻り値をret、その呼び出しで要求されたサイズをreqとして、
      • pret.ptrと等しいこと
      • nreq <= n <= ret.countとなる値であること
    • そうでなければ、pは、allocate()によって確保されたポインタ値であること。nは、アロケートされたpのサイズと同じであること

効果

pが指すストレージを解放する。

#include <memory>

int main()
{
  std::allocator<int> alloc;

  // 10要素のint領域を確保する
  std::size_t n = 10;
  int* p = alloc.allocate(n);

  // 確保したメモリを解放する
  alloc.deallocate(p, n);
}
  • deallocate[color ff0000]
  • alloc.allocate[link allocate.md]

出力

参照