Для освобождения выделенной памяти в функции вам потребуется использовать функцию free().
Если массив был выделен в функции с помощью функции malloc(), то для освобождения памяти нужно использовать следующую конструкцию:
```c
void func() {
int* array = (int*) malloc(sizeof(int) * N);
// использование массива
free(array);
}
```
Если массив был выделен в функции с помощью функции calloc(), то освобождение памяти будет аналогичным:
```c
void func() {
int* array = (int*) calloc(N, sizeof(int));
// использование массива
free(array);
}
```
Если массив был выделен в функции с помощью функции realloc(), то освобождение памяти также будет аналогичным:
```c
void func() {
int* array = (int*) realloc(NULL, sizeof(int) * N);
// использование массива
free(array);
}
```
Если возвращаемый функцией массив является двумерным, то освобождение памяти будет выполняться построчно:
```c
void func() {
int** array = array_init();
// использование массива
for (int i = 0; i < N; i++) {
free(array[i]);
}
free(array);
}
```