richtige Möglichkeit, die Werte von c-Zeigern zu ändern

Tut mir leid, noch eine C-Zeiger-Frage. Ich habe eine Funktion func (), die ein Array sortiert und dann die größten und kleinsten Ganzzahlen abruft. Ich versuche, sie in Zeigervariablen in main () zu setzen, aber die Werte sind nur innerhalb der Funktion func () korrekt. Ich verstehe nicht warum :(

#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);
} 

Antworten auf die Frage(3)

Ihre Antwort auf die Frage