Ничего страшного, если array
имеет как минимум asize + 1 + 1
байтов.
Если нет, то поведение программы будет неопределенным. В вашем случае поведение равно не определено, поскольку arrayd
является 13-байтовым массивом.
Лично я хотел бы, чтобы длина array
передавалась в качестве параметра функции, чтобы вы могли проверить в точке использования.
Вы можете встроить в функцию realloc
возможности, но тогда вам нужно будет передать array
как char**
, чтобы вы могли изменить указатель и вам нужно Вы сами рискуете лишиться прав потребителей исходного указателя.
Наконец, передача NUL для c
по сути не работает; Я бы имел дело с этим на вашем месте.