Originariamente inviato da solid gear
codice:
...[CUT]...

int **studentsalloc(int nstudents){ 
    int *n = NULL;
    n = (int *) malloc (nstudents*sizeof(int));
    return n;  /* ora mi dice Return from incompatible pointer type */
    }
se provo con il debug, vedo che l'indirizzo di vet viene modificato con quello di n, come voglio io, ma se provo ad accedere a un parte di memoria di vet, per esempio mettendo un 5 in *(vet+1), e facendo la printf mi viene SIGSEGV...

devo per forza fare un cast a quel return n?
sto impazzendo, la logica dei puntatori mi è piu o meno chiara, sto studiando sodo :master:
ti da errore perche' la variabile "n" e' dichiarata "int *" e la funzione invece ritorna un "int **" e quindi non va bene.

ma quello che non capisco e' perche' usare un puntatore a puntatore (int **) invece che semplicemente un puntatore (int *).....