Это близко к оптимизации низкого уровня. Короче говоря: это зависит от обстоятельств. Если вы выделяете только буферы довольно большого размера, free
+ malloc
может быть лучше, потому что вы избегаете копирования старых данных. Но если вы выделяете крошечные буферы, alloc
может выделить больше, чем запрошено. В этом случае realloc
будет быстрее, потому что это будет обычное бездействие.