У меня есть блок памяти, который я хочу перераспределить на другой размер, но меня не волнует, выбрасывается память или нет. Было бы быстрее освободить () память, а затем malloc () новый блок памяти, или это можно сделать с помощью realloc ()?
Я думаю, что оба решения не оптимальны, потому что выполняется дополнительная работа. Я держу пари, что realloc () быстрее находит достаточно большой блок памяти из-за возможности того, что текущий фрагмент будет большим или достаточно маленьким, чтобы вместить новый блок памяти. Но если фрагмент недостаточно велик, он должен скопировать память, чего не делает malloc ().
Я использую Linux. Может быть, для этого есть специальная функция?
Спасибо! :)
header_size
0. - person Steve Jessop   schedule 11.11.2012