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

C ライブラリの realloc() 関数:使い方は?構文と例

realloc() とは?

realloc() 既に割り当てられているメモリ ブロックにさらにメモリ サイズを追加するための C ライブラリの機能です。 C での realloc の目的は、元の内容をそのままにして、現在のメモリ ブロックを拡張することです。 realloc() 関数は、malloc または calloc 関数によって以前に割り当てられたメモリのサイズを減らすのに役立ちます。 realloc は、メモリの再割り当てを表します。

C の realloc の構文

ptr = realloc (ptr,newsize);

上記のステートメントは、変数 newsize で指定されたサイズの新しいメモリ空間を割り当てます。関数の実行後、ポインタはメモリ ブロックの最初のバイトに戻されます。新しいサイズは、以前のメモリより大きくても小さくてもかまいません。新しく割り当てられたブロックが以前のメモリ ブロックと同じ場所を指すかどうかはわかりません。 C の realloc 関数は、以前のすべてのデータを新しいリージョンにコピーします。データが安全に保たれるようにします。

例:

#include <stdio.h>
int main () {
   char *ptr;
   ptr = (char *) malloc(10);
   strcpy(ptr, "Programming");
   printf(" %s,  Address = %u\n", ptr, ptr);

   ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new size
   strcat(ptr, " In 'C'");
   printf(" %s,  Address = %u\n", ptr, ptr);
   free(ptr);
   return 0;
}

realloc() の使い方

以下の C のプログラムは、C で realloc を使用してメモリを再割り当てする方法を示しています。

#include <stdio.h>
#include <stdlib.h>
    int main() {
        int i, * ptr, sum = 0;
        ptr = malloc(100);
        if (ptr == NULL) {
            printf("Error! memory not allocated.");
            exit(0);
        }
        
        ptr = realloc(ptr,500);
    if(ptr != NULL)
           printf("Memory created successfully\n");
           
    return 0;

    }

C の例での再割り当ての結果:

Memory created successfully

再割り当ての結果として操作が失敗するたびに、null ポインターが返され、以前のデータも解放されます。


C言語

  1. モリブデンはどのように使用しますか?
  2. Azure DevOpsを効果的に使用する方法は?
  3. VHDL で不純な関数を使用する方法
  4. VHDL で関数を使用する方法
  5. パズルでエポキシ樹脂を使用する方法
  6. C ライブラリの calloc() 関数とプログラムの例
  7. C ライブラリの free() 関数:使い方は?例で学ぶ
  8. 消火器の使用時期と使用方法
  9. ペイントスプレーを効果的に使用する方法
  10. サーミスタの使い方は簡単ですか?!
  11. カッターグラインダーの使い方