free | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


free関数

概要

動的に確保されたメモリ領域を解放する

ヘッダ

stdlib.h

形式

void free(void* ptr);

引数

ptr

解放するメモリ領域のメモリアドレス、あるいはヌルポインタ。ヌルポインタでない場合は、malloc関数calloc関数realloc関数のいずれかで確保された領域のメモリアドレスでなければならない。

戻り値

なし

詳細

動的に確保されたメモリ領域を解放する。

実引数がヌルポインタの場合には、何も起こらないことが保証されている。

注意

malloc関数calloc関数realloc関数のいずれかの関数で確保されていない領域のメモリアドレスを渡す行為は未定義である。すでに解放済みの領域を再度指定することも未定義である。

解放されたメモリ領域をアクセスする行為は未定義である。

使用例

#include <stdio.h>
#include <stdlib.h>

#define ALLOCATE_SIZE   (10)

int main(void)
{
    int* values = malloc(sizeof(int) * ALLOCATE_SIZE);
    if (values == NULL) {
        exit(EXIT_FAILURE);
    }

    for (int i = 0; i < ALLOCATE_SIZE; ++i) {
        values[i] = i;
    }

    for (int i = 0; i < ALLOCATE_SIZE; ++i) {
        printf("%d\n", values[i]);
    }

    free(values);
}

実行結果:

0
1
2
3
4
5
6
7
8
9

関連

解説章

第35章


参考リンク


更新履歴

’2018/4/8 全体的に文章を見直し修正。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る