ポインターが静的、グローバル、または自動の場合は明示的に 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た。コメントを参照してください。)