C言語の標準ライブラリreallocのリファレンスです。
概要 | 確保したメモリのサイズを変更する。 |
ヘッダ | #include <stdlib.h> |
I/F | void *realloc(void *ptr, size_t size); |
戻り値 | 新しいオブジェクトへのポインタ。割付け不可の場合は空ポインタ。 |
詳細 | realloc関数は、ptrが指すオブジェクトを解放し、大きさがsizeである新しいオブジェクトへのポインタを返却する。 新しいオブジェクトの内容は、新しいオブジェクトの大きさと古いオブジェクトの大きさのうち小さい方の大きさまでの部分で、解放する前の古いオブジェクトの内容と同じとなる。 ptrが空ポインタのときはmalloc(size)と同じ動作となる。 ptrがcalloc関数、malloc関数、realloc関数によって以前に返却されたポインタと一致しないときの動作は未定義である。また、ptrが示す領域がfree関数、realloc関数によって既に解放されているときも、その動作は未定義である。 新しいオブジェクトの領域割付けができなかった場合、古いオブジェクトは解放されず、その値は変化しない。realloc関数が返却する新しいオブジェクトへのポインタは古いオブジェクトへのポインタと同じである可能性がある。 |