空き機能を備えたCの空きメモリ

Free Memory C With Free Function



C言語は、そのメモリ管理を処理するのに十分効率的です。つまり、Cで任意のデータ型の通常の変数を宣言するときはいつでも、プログラムが正常に実行されると、プログラミング言語自体がこのメモリの割り当てを解除または解放する責任があります。ただし、動的メモリ割り当ての場合、メモリを手動で割り当てるため、自分でメモリを解放する必要があります。

stdlib.hライブラリには、この目的を果たすための専用関数、つまりfree()関数があります。今日は、Cプログラミング言語でこの関数を使用する必要性を探ります。その後、LinuxのCプログラミング言語でこの関数を使用してメモリを手動で解放したいくつかの例を見ていきます。







システムメモリを解放するためにCの解放関数を使用する必要性:

私たちのコンピュータシステムのメモリは限られていることは誰もが知っています。そのため、その中で無限のプログラムを実行することはできません。自動メモリ割り当ての場合、プログラムの実行が終了すると、コンピュータがメモリの解放を処理します。ただし、ヒープから手動でメモリを割り当てる場合は、何らかの方法でメモリを解放する必要があります。



そうしないと、最終的にメモリが不足し、プログラムをそれ以上実行できなくなります。ここで、stdlib.hライブラリのfree()関数が機能します。この関数は、プログラムの最後のreturnステートメントの直前で使用するため、プログラムが終了する前にヒープメモリをコンピュータシステムに戻す必要があります。



特に動的メモリ割り当てを対象としたCコードを記述している間、この関数を無視し続けると仮定します。その場合、メモリが不足するため、ヒープにこれ以上アクセスできなくなるポイントが発生します。そのため、メモリ割り当ての責任を動的に負う場合は、この一見価値の低い機能を決して忘れてはなりません。





Cプログラミング言語でのfree()関数の一般的な構文は次のとおりです。

空所自由 ((空所*ptr)。

ここで、free()関数の前のvoidキーワードは、この関数の戻り型がvoidであることを示しています。角かっこ内のポインタは、割り当てを解除する必要のあるメモリ位置に対応しています。次のセクションでは、Cで取得した動的メモリを解放するためにfree()関数を使用したいくつかの例について説明します。



CでのFree関数の使用例:

free()関数は、stdlib.hライブラリの3つのメモリ割り当て関数(malloc、calloc、realloc)すべてで使用できます。プログラムの実行中に動的に割り当てたヒープメモリをコンピュータシステムに戻すことができるように、プログラムの基本機能を記述した後でこの関数を使用する必要があります。ここで、free()関数がCプログラミング言語のmallocおよびcalloc関数で使用されているいくつかの例を見てみましょう。

例1:CのcallocでFree関数を使用する:

free()関数をcalloc()関数とともに使用するためのCコードは、以下の画像で共有されています。

このコードの基本的な目的は、calloc()関数を使用してメモリを動的に割り当てることでした。そのために、動的メモリのサイズとこの動的メモリの値をユーザーからの入力として使用しました。次に、取得した値を端末に出力することを意図しました。このコード全体の後に、Cプログラムの実行により割り当てられた動的メモリを解放するfree()関数があります。

同じコードのわずかに変更されたバージョンも、以下に引用されている画像に示されています。

この変更されたバージョンは、手動で初期化する前に動的に割り当てられたメモリ値を出力することのみを目的としていました。 calloc()関数は、実現が行われる前にメモリ全体をゼロで初期化することを知っています。ただし、このコードでここで注意すべき重要な点は、このコードは非常にコンパクトで単純ですが、必要な機能が達成された後は、ヒープメモリを解放するためだけにfree()関数を使用したことです。このCプログラムを実行した結果として取得されます。

例2:CのmallocでFree関数を使用する:

free()関数をmalloc()関数とともに使用するためのCコードは、以下に追加された画像で共有されています。

このコードの基本的な目的は、malloc()関数を使用してメモリを動的に割り当てることでした。そのために、この動的メモリの値をforループに割り当てました。次に、取得した値を別のforループを使用して端末に出力することを意図しました。このコード全体の後、returnステートメントの直前にfree()関数があり、Cプログラムの実行の結果として割り当てられた動的メモリを単純に解放します。

結論:

この記事では、LinuxのCプログラミング言語でfree()関数を使用することの重要性を強調しました。ほとんどのユーザーは、stdlib.hファイルの割り当て機能がより重要であると考えています。ただし、この記事を読むと、free()関数も同様に重要であることがはっきりとわかります。これは、動的に取得されたメモリを解放し、将来プログラムを実行しようとするたびにメモリが不足しないようにするのに役立ちます。