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

例を使用した C ライブラリの malloc() 関数

C の malloc とは?

malloc() 関数は、メモリ割り当てを表します。これは、メモリのブロックを動的に割り当てるために使用される関数です。指定されたサイズのメモリ空間を予約し、メモリ位置を指す null ポインタを返します。通常、返されるポインタは void 型です。これは、malloc 関数を任意のポインターに割り当てることができることを意味します。

構文

ptr = (cast_type *) malloc (byte_size);

ここで、

Example: ptr = (int *) malloc (50)

このステートメントが正常に実行されると、50 バイトのメモリ空間が確保されます。予約済みスペースの最初のバイトのアドレスは、int 型のポインター ptr に割り当てられます。

malloc 実装の別の例を考えてみましょう:

#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
    if (ptr != NULL) {
      *(ptr + 5) = 480; /* assign 480 to sixth integer */
      printf("Value of the 6th integer is %d",*(ptr + 5));
    }
}

出力:

Value of the 6th integer is 480

<オール>
  • sizeof(*ptr) に注意してください sizeof(int) の代わりに使用されました *ptr 宣言が後で別のデータ型に型キャストされたときに、コードをより堅牢にするためです。
  • メモリが十分でない場合、割り当てが失敗することがあります。この場合、NULL ポインタを返します。したがって、NULL ポインタをチェックするコードを含める必要があります。
  • 割り当てられたメモリは連続しており、配列として扱うことができることに注意してください。括弧 [ ] を使用する代わりに、ポインター演算を使用して配列要素にアクセスできます。 + を使用して配列要素を参照することをお勧めします。インクリメント ++ または +=を使用すると、ポインターによって格納されたアドレスが変更されるためです。
  • Malloc 関数は、文字データ型だけでなく、構造体などの複雑なデータ型でも使用できます。


    C言語

    1. C++ Switch Case ステートメントと EXAMPLE
    2. 例による配列の C++ 動的割り当て
    3. C++ ポインタと例
    4. C++ 演算子のオーバーロードと例
    5. C++ 構造体と例
    6. 印刷例を使用した C++ 標準テンプレート ライブラリ (STL) のマップ
    7. C++ の std::list と例
    8. C++ 関数とプログラム例
    9. C ライブラリの calloc() 関数とプログラムの例
    10. C ライブラリの realloc() 関数:使い方は?構文と例
    11. C ライブラリの free() 関数:使い方は?例で学ぶ