Поскольку библиотека C, включая malloc
, была разработана с минимальными издержками.Функция, подобная той, которую вы хотите, потребовала бы, чтобы реализация записывала точный размер выделения, в то время как реализации теперь могут выбирать «округлять» размер по своему усмотрению, чтобы предотвратить фактическое перераспределение в realloc
.
* 1004.* Сохранение размера требует дополнительных
size_t
на выделение, что может быть тяжелым для встроенных систем.(И для PDP-11 и 286, которые были все еще многочисленны, когда был написан C89.)