工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C言語free()関数完全マスター:実践ガイドと例

C言語のfree()関数とは

free()関数はC標準ライブラリの一部で、malloc()、calloc()、realloc()で以前に割り当てられたメモリを解放します。ブロックをヒープに返すことで、プログラムのメモリフットプリントを制御し、利用可能メモリの枯渇を防ぎます。

スタック変数とは異なり、動的に割り当てられたメモリは明示的に解放する必要があります。free()を呼ばないとメモリリークが発生し、最終的にout-of-memoryエラーの原因となります。

構文

void free(void *ptr);

ptrは解放したいメモリブロックへのポインタです。NULLポインタを渡しても安全で、何もしません。

実践例

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    // 10個の整数分の領域を確保
    int *ptr = malloc(10 * sizeof(*ptr));
    if (ptr == NULL) {
        fprintf(stderr, "Memory allocation failed\n");
        return 1;
    }
    // 値を格納して表示
    ptr[2] = 50;
    printf("Value of the 3rd integer is %d\n", ptr[2]);
    // 使用後にメモリを解放
    free(ptr);
    return 0;
}

出力:

Value of the 3rd integer is 50

ベストプラクティス

C言語

  1. C++ std::vector完全ガイド:動的配列、イテレータ、実践例
  2. C++ std::map完全ガイド:連想配列の実践的活用とコード例
  3. C++ポリモーフィズム徹底解説:実践例とキー概念
  4. C言語のcalloc():ゼロ初期化メモリ割り当てと実践例
  5. C言語のrealloc()活用ガイド:構文、ベストプラクティス、実例
  6. VHDLにおける不純関数の活用:FSMの可読性と保守性向上
  7. VHDL関数マスター:効率的な設計のための実践ガイド
  8. Python strip()メソッド完全ガイド:実践例付き
  9. Java String.length()メソッド:文字列サイズ取得の実例解説
  10. Java String.compareTo()マスター:構文、ユースケース、実践例
  11. Java BufferedReader でファイル読み込み:実践ガイドと例