C/C++の宿題片付けます 148代目
■ このスレッドは過去ログ倉庫に格納されています
0482デフォルトの名無しさん
2011/05/29(日) 00:10:28.68> 「メモリアロケーターがOSから確保したメモリブロックを終了前にOSに返さない」
> という事態を、普通のプログラムでどうやって引き起こしたらいいのかわからないのですが。
int main()
{
free(malloc(1000 * 1000 * 1000));
}
病的にこだわった自作のメモリアロケータを使っていなければこれで発生する。
メモリアロケータ(malloc)はOSから(大き目な)メモリブロックの割り当てを受けて、
それを分割して渡す。普通のメモリアロケーターはfreeされてもOSには返却しない。
てめーはこれから自作のメモリアロケータ使って、プログラム終了時にOSにメモリを確実に返せ。
ここで回答するときも忘れるなよ。
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww
■ このスレッドは過去ログ倉庫に格納されています