#include <stdlib.h> void *realloc(void *old, size_t num) old : 以前割り当てられた配列へのポインタ num : 新しく割り当てるバイト数
#include <stdio.h> #include <stdlib.h> int main() { int i1, *k1; /* int型整数の10個の配列を確保 callocを使用(0で初期化される) */ k1 = (int *)calloc(10, sizeof(int)); /* 最初の5個に1から5を代入 */ for (i1 = 0; i1 < 5; i1++) k1[i1] = i1 + 1; for (i1 = 0; i1 < 10; i1++) printf("%2d ", k1[i1]); printf("\n"); /* 配列のサイズを15に変更(10個目までのデータは保存される) */ k1 = (int *)realloc((void *)k1, 15*sizeof(int)); /* intを15個 */ for (i1 = 0; i1 < 15; i1++) printf("%2d ", k1[i1]); printf("\n"); /* 領域の解放 */ free((void *)k1); /* int型整数の10個の配列を確保 mallocを使用(内容は未定) */ k1 = (int *)malloc(10*sizeof(int)); /* intを10個 */ for (i1 = 0; i1 < 10; i1++) printf("%2d ",k1[i1]); printf("\n"); return 0; }
1 2 3 4 0 0 0 0 0 0 1 2 3 4 5 0 0 0 0 0 0 33 1627793056 1627793056 0 1627793104 1627793104 3 4 5 0 0 0 0 0
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |