правильный способ изменить значения указателей c

Извините, еще один вопрос об указателе C ... У меня есть функция func (), которая сортирует массив, а затем получает самые большие и самые маленькие целые числа. Я пытаюсь поместить их в переменные-указатели в main (), но значения верны только внутри функции func (). Я не понимаю почему :(

#include <stdio.h>

void func(int arr[], int *s, int *l, int n){
    int i = 1;
    for(; i < n; i++){
        int temp = arr[i];
        int n = i;
        while( n > 0 && arr[n-1] > temp){
            arr[n] = arr[n-1];
            n--;
        }
        arr[n] = temp;
    }
    l = &arr[n-1];
    s = &arr[0];\
    printf("%d %d\n",*l,*s);
}

int main(void){
    int arr[] = {1,2,9,3,58,21,4};
    int *s, *l;
    int size = 7;
    func(arr,s,l,size);
    printf("%d %d\n",*l,,*s);
} 

Ответы на вопрос(3)

Ваш ответ на вопрос