std::free
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <cstdlib> で定義
|
||
void free( void* ptr ); |
||
以前に std::malloc、 std::calloc、 std::aligned_alloc (C++17以上) または std::realloc によって確保された空間を解放します。
ptr がヌルポインタの場合、この関数は何もしません。
ptr の値が以前に std::malloc、 std::calloc、 std::aligned_alloc (C++17以上) または std::realloc によって返された値と等しくない場合、動作は未定義です。
ptr の参照するメモリ領域がすでに解放されている場合、つまり、引数として ptr を使用して std::free または std::realloc がすでに呼ばれ、その後 ptr と等しいポインタを返した std::malloc、 std::calloc、 std::aligned_alloc (C++17以上) または std::realloc の呼び出しがない場合、動作は未定義です。
std::free が戻った後、ポインタ ptr を通してアクセスが行われた場合、動作は未定義です (別の確保関数が ptr と等しいポインタ値を返した場合を除きます)。
|
以下の関数はスレッドセーフであることが要求されます。
記憶域の特定の単位を確保または解放するこれらの関数の呼び出しは単一の全順序で発生し、そのような解放の呼び出しそれぞれはこの順序における次の確保 (もしあれば) に対して先行発生します。 |
(C++11以上) |