allora nel programma sottostante mi viene dato un errore alla linea 62 (quella in rosso), l'errore è:
det.c: In function `det':
det.c:62: warning: passing arg 4 of `det' from incompatible pointer type
det.c:62: void value not ignored as it ought to be
codice:
#include <stdio.h>
#define SIZE 2

/* PROTOTIPO FUNZIONE */
void scambia_righe(int **m, int size, int r1, int r2, int start);
void det(int **m, int size, int start, int **ris);

/* PROGRAMMA CHIAMANTE */
int main()
{
int **m;
int i, j, n, *ris;

    printf("Inserisci la dimensione n: ");
    scanf("%d", &n);
   
    if (!(m = (int **)malloc(n*n*sizeof(int))))
    abort(); 
 
      for(i=0; i<n; ++i)
      for(j=0; j<n; ++j)
      {
        printf("Inserisci il valore dell'elemento (%d,%d): ", i+1, j+1);
        scanf("%d", &m[i][j]);
      }
	
	det(m,n,0, &ris);
	printf("Determinante = %d \n", ris);
	return 0;
        free(m);
}

void scambia_righe(int **m, int size, int r1, int r2, int start){
int i, tmp;
	for(i=start; i<size; ++i)
	{
		tmp = m[r1][i];
		m[r1][i] = m[r2][i];
		m[r2][i] = tmp;
	}
}

void det(int **m, int size, int start, int **ris)
{
int r;
int sgn = 1;
int risultato = 0;

/* CASO DI UNA MATRICE 1x1 */
if(start == (size - 1))
*ris = (int *)m[size-1][size-1];
     for(r=start; r<size; ++r)
	{
	if(r != start)
	{
	sgn = -1; /*scambiando due righe il determinante del minore cambia di segno*/
	scambia_righe(m, size, start, r, start);
	}
	risultato += sgn * m[start][start] * det(m, size, start+1, &risultato);
		if(r != start)
			scambia_righe(m, size, start, r, start);
	}
	*ris = (int *)risultato;
}