トップページ > キーワード検索 > realloc()
C言語規格
C言語(その他)
プログラム
その他
realloc()
機能 メモリ領域を再割り当てする。
値は古いオブジェクトの内容が保持される。割り当て後のサイズが小さい場合は保持できるサイズ分だけの内容となる。サイズが大きい場合は古いオブジェクトのサイズを超えた分の内容は不定となる。
※ 割り当てた領域の値は不定
※ 割り当てた領域は必ずfree関数で解放すること
定義 #include <stdlib.h>

void * realloc ( void * ptr, size_t size );
引数
ptr再割り当てを行なうオブジェクトへのポインタ
size再割り当て後のサイズ
戻り値 割り当てた領域へのポインタを返す。失敗した場合はNULLを返す。
実装例
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int *p;
    int i;
    
    /* 領域を割り当てる */
    p = (int*)calloc(10, sizeof(int));
    
    /* 数値を代入 */
    for(i=0; i<10; i++) {
        p[i] = i;
    }
    
    /* 半分のサイズに再割り当て */
    p = (int*)realloc(p, 5 * sizeof(int));
    
    /* 数値を表示 */
    for(i=0; i<5; i++) {
        printf("[%d]=%d\n", i, p[i]);
    }
    
    /* 解放 */
    free(p);
    
    return 0;
}
実行結果
[0]=0
[1]=1
[2]=2
[3]=3
[4]=4





inserted by FC2 system