C> То бишь вызывающая функция должна передать в вызываемую функцию уже готовый массив. И сама же потом его освободить. Вызывающей функции лучше знать откуда и как распределялась память под массив, и что с ней потом делать.
А какого размера должен быть массив, который передаётся в функцию?
Функция, к примеру, сжатый файл в буфер читает.