ポインターが静的、グローバル、または自動の場合は明示的に NULL に設定されていれば、realloc は malloc() なしで使用していました。
しかし、多くのプログラマーがそれを設定したり、malloc(1) に設定したりしようとしていることに気付きました。必要ですか?
ポインターが静的、グローバル、または自動の場合は明示的に NULL に設定されていれば、realloc は malloc() なしで使用していました。
しかし、多くのプログラマーがそれを設定したり、malloc(1) に設定したりしようとしていることに気付きました。必要ですか?
ptr が NULL ポインターの場合、realloc() は、指定されたサイズの malloc() と同等でなければなりません。
ptr が、calloc()、malloc()、または realloc() によって以前に返されたポインターと一致しない場合、または空間が以前に free() または realloc() の呼び出しによって割り当て解除されている場合、動作は未定義です。
malloc
のみ使用できますrealloc
。
malloc(n)
と同等realloc(NULL, n)
です。
malloc
ただし、多くの場合、 の特別なセマンティクスの代わりに使用する方が明確ですrealloc
。何が機能するかは問題ではありませんが、コードを読んでいる人々を混乱させることはありません。
realloc
(編集: 標準 C ではないため、として機能するという記述を削除しましfree
た。コメントを参照してください。)