Возможный дубликат:
Почему calloc принимает два аргумента, а malloc - только один?
Существует множество ресурсов, описывающих разницу в функциональности между malloc
и calloc
, но я не могу легко найти тот, который описывает историю, лежащую за разными сигнатурами функций:
void *calloc(size_t nmemb, size_t size);
void *malloc(size_t size);
Конечно, size
в первом является размером для каждого члена. Может быть, идея заключалась в том, что с помощью операционной системы можно было лениво сделать несколько часовых элементов размером с размер страницы?
(Я могу объяснить причины, а также следующий парень - нет принятых ответов без цитируемых источников.: -)