Ciao a tutti,
sono alle prime armi con il linguaggio c, ieri ho provato a implementare il selection sort; vi posto il codice:

codice:
#include <stdio.h>
#include <stdlib.h>

int SelectionSort(int *A, int length){

int i, min, min_index, j;

for(i=0; i<length; i++){
    min = A[i];
    i = min_index;
    for(j=i+1; j<length; j++){
          if (A[j]<min){
                min = A[j];
                min_index = j;
          }
    }
    A[min_index] = A[i];
    A[i] = min;
}

return *A;
}

int main(){

int i, n, *A;

printf("Inserire la lunghezza dell'array\n");
scanf("%d", &n);
if (n<=0) return 1;
A = malloc(n* sizeof(int));
if (A == NULL) return 1;

printf("Inserire gli elementi dell'array\n");
for (i = 0; i<n; i++)
    scanf("%d", A+i);

SelectionSort(A, n);

for(i=0; i<n; i++)
    printf("%d ", A[i]);
printf("\n");

return 0;
}
Non mi dà errori di compilazione. Il problema è che quando finisco di inserire gli elementi dell'array mi dà Segmentation Fault. Ho provato a mettere una printf prima della chiamata SelectionSort(A,n) e una all'inizio della funzione SelectionSort: la prima la stampa, ma la seconda no e non riesco a capire dov'è il problema!

Grazie!