malloc
не требуется, вы можете использовать только realloc
.
malloc(n)
эквивалентно realloc(NULL, n)
.
Однако часто яснее использовать malloc
вместо специальной семантики realloc
. Дело не в том, что работает, а в том, чтобы не путать людей, читающих код.
(Изменить: удалено упоминание о realloc
, действующем как free
, поскольку это не стандартная C. См. Комментарии.)