類似の単語または同義語 malloc

env    0.825645

const    0.823891

printf    0.820816

eval    0.820560

init    0.815921

include    0.815431

イテレータ    0.812135

sizeof    0.811231

struct    0.809815

bool    0.808357

類義語または同義語 malloc

Article Example
Malloc codice_1が使用する実際のメモリ確保機構には様々な実装がある。それらの性能は、実行時間と要求されるメモリの両面で様々である。
Malloc ヒープではなくCのスタックフレームから実行時に動的にメモリを確保するライブラリルーチンもある(Unix系の codice_5、Microsoft Windows のCランタイムライブラリの codice_6 など)。このように確保したメモリは呼び出した関数から抜ける時点で自動的に解放される。C99標準で可変長配列がサポートされ、実行時に大きさを決定でき任意の静的スコープの範囲で存在するメモリ確保法が言語構文に組み込まれたが、C11ではサポート必須ではなくオプションに格下げとなった。
Malloc codice_1はC言語におけるヒープ領域からのメモリ確保に使われる基本関数である。その関数プロトタイプはcodice_8ヘッダに次のように定義されている。
Malloc しかしcodice_8をインクルードし忘れた場合、コンパイラはcodice_1がint型であるとみなす。これをキャストしているとインクルードし忘れたことに気づかないが、キャストしていないとコンパイル時にintをポインタ型変数に代入しようとしているとして何らかのメッセージが表示される。例えば64ビットのシステムでLP64というデータモデルを採用している場合、codice_18とポインタは64ビットだが、codice_19は32ビットとなる。この場合codice_8をインクルードし忘れてそれに気づかないと、codice_1が実際には64ビットのポインタを返すのに、32ビットの値を返すと暗に宣言したことになり、バグが生じる可能性がある。ただし、多くのコンパイラは宣言のない関数を使用していると(キャストの有無に関わらず)コンパイル時に警告を出す。
Malloc メモリブロックを大きくしたり小さくしたりできれば便利である。これはcodice_1とcodice_4を組み合わせて、新たなメモリブロックを確保して内容を前のメモリブロックからコピーし、前のメモリブロックを解放することで実現できる。しかし、この方法は回りくどい。代わりにcodice_32(リアロック)関数を使うことが出来る。そのプロトタイプは以下の通りである。