realloc

提供: RAD Studio
移動先: 案内検索

alloc.h:インデックス への移動


ヘッダーファイル

alloc.h, stdlib.h

カテゴリ

メモリルーチン

プロトタイプ

void *realloc(void *block, size_t size);

説明

メインメモリを再割り当てします。

realloc は,前に割り当てられたブロックを size バイトに収縮または拡張しようとします。size が 0 の場合,メモリブロックは解放され,NULL が返されます。block 引数は,前に malloc,calloc,または realloc を呼び出して取得されたメモリブロックを示します。block がヌルポインタの場合,realloc の機能は malloc とまったく同じです。

realloc は,割り当て済みのブロックのサイズを size に調整し,必要であれば内容を新しい場所にコピーします。

戻り値

realloc は,再割り当てされたブロックのアドレスを返します。これは,元のブロックのアドレスとは異なる場合があります。

ブロックを再割り当てできない場合,realloc は NULL を返します。

size の値が 0 の場合,メモリブロックは解放され,realloc は NULL を返します。



 #include <stdio.h>
 #include <alloc.h>
 #include <string.h>
 int main(void)
 {
    char *str;
    /* 文字列にメモリを割り当てる */
    str = (char *) malloc(10);
    /* 文字列に「Hello」をコピーする */
    strcpy(str, "Hello");
    printf("String is %s\n  Address is %p\n", str, str);
    str = (char *) realloc(str, 20);
    printf("String is %s\n  New address is %p\n", str, str);
    /* メモリを解放する */
    free(str);
    return 0;
 }



移植性



POSIX Win32 ANSI C ANSI C++

+

+

+

+