割り当て済み猟奇のサイズを変更することができる。
#include#include #define BUFF_SIZE 256 int main(void) { int i; unsigned char *pmem = NULL, *pmemsave = NULL, *pmemnew = NULL; pmemsave = pmem = (unsigned char *)malloc(BUFF_SIZE); if (pmem == NULL){ fprintf(stderr, "メモリ割り当てに失敗しました。\n"); exit(EXIT_FAILURE); } for (i = 0; i < BUFF_SIZE; i++) *pmem++ = (unsigned char)i; pmem = pmemsave; for (i = 0; i < BUFF_SIZE; i++) printf("%u ", *pmem++); printf("\n"); pmemnew = realloc(pmemsave, BUFF_SIZE * 2); if (pmemnew != NULL){ pmem = pmemnew; for (i = 0; i < BUFF_SIZE * 2; i++) printf("%u ", *pmem++); printf("\n"); free(pmemnew); pmemnew = NULL; } else { free(pmemsave); pmemsave = NULL; fprintf(stderr, "メモリの再割り当てに失敗しました\n"); exit(EXIT_FAILURE); } return 0; }