C-standard-library-c-function-realloc

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-realloc()

説明

Cライブラリ関数 void realloc(void * ptr、size_t size)は、 *malloc または calloc の呼び出しで以前に割り当てられた ptr が指すメモリブロックのサイズを変更しようとします。

宣言

以下は、realloc()関数の宣言です。

void *realloc(void *ptr, size_t size)

パラメーター

  • ptr -これは、以前にmalloc、callocまたはreallocで再割り当てされるように割り当てられたメモリブロックへのポインタです。 これがNULLの場合、新しいブロックが割り当てられ、関数へのポインターが返されます。
  • サイズ-これはバイト単位のメモリブロックの新しいサイズです。 0であり、ptrが既存のメモリブロックを指す場合、ptrが指すメモリブロックの割り当てが解除され、NULLポインタが返されます。

戻り値

この関数は、新しく割り当てられたメモリへのポインタを返します。リクエストが失敗した場合はNULLを返します。

次の例は、realloc()関数の使用法を示しています。

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

int main () {
   char *str;

  /*Initial memory allocation*/
   str = (char *) malloc(15);
   strcpy(str, "finddevguides");
   printf("String = %s,  Address = %u\n", str, str);

  /*Reallocating memory*/
   str = (char *) realloc(str, 25);
   strcat(str, ".com");
   printf("String = %s,  Address = %u\n", str, str);

   free(str);

   return(0);
}

次の結果を生成する上記のプログラムをコンパイルして実行しましょう-

String = finddevguides, Address = 355090448
String = finddevguides.com, Address = 355090448