ciao amici,
mi trovo a scrivere un programma per il calcolo della distanza con l'algoritmo di levenshtein, questo il codice:

codice:
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <iostream.h>
#include <stdio.h>


int levenshtein_distance(char *s,char *t);

int minimo(int a,int b,int c);


/* funzione di levenshtein */

int levenshtein_distance(char *s,char *t)
{

  /* definizione delle variabili */

  int k;
  int i;
  int j;
  int n;
  int m;
  int cost;
  int *d;
  int distance;

  /* inserisco in n e m il valore della lunghezza delle stringhe s e t */

  n=strlen(s); 

  m=strlen(t);

  if(n!=0 && m!=0)

  {

	/* alloco la memoria per una matrice di dimensione (m*n) */

	d = malloc((sizeof(int))*(m+1)*(n+1));

    m = m+1;

    n = n+1;

	/* inizializzo la matrice */

    for(k=0;k<n;k++)

		d[k]=k;

    for(k=0;k<m;k++)

		d[k*n]=k;

	/* faccio i confronti con le due stringhe */

    for(i=1;i<n;i++)

      for(j=1;j<m;j++)

		{
			
			/* se il carattere di STRINGA1 è uguale al carattere di STRINGA 2 */
			/* allora COSTO = 0, altrimenti lo incremento e COSTO = 1 */

			if(s[i-1]==t[j-1])

			  cost=0;

			else

			  cost=1;

			/* calcola la distanza */
			 
			d[j*n+i]=minimo(d[(j-1)*n+i]+1,d[j*n+i-1]+1,d[(j-1)*n+i-1]+cost);

      }

	/* assegna la distanza a distance */

    distance=d[n*m-1];

	/* ripulisce la matrice d */

    free(d);

	/* ritorna il valore distanza */

    return distance;

  }

  else 

    return -1; 
}

int minimo(int a,int b,int c)

/* funzione che calcola il minimo di 3 valori */

{

	  int min=a;

	  if(b<min)

		min=b;

	  if(c<min)

		min=c;

	  return min;

}


int main ()

{

	char stringa1;

	char stringa2;

	cout << "INSERIRE LE STRINGHE: \n" << gets(stringa1), gets(stringa2); 

	cout << "LA DISTANZA VALE: " << levenshtein_distance(stringa1,stringa2) <<

	endl;

return 0;

}
ottengo però errori di compilazione, in particolare quando esplicito d, la matrice, il compilatore se ne esce con:
cannot convert from 'void *' to 'int *'
ed altri problemi di conversione li ho nel main, al gets
gets' : cannot convert parameter 1 from 'char' to 'char *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

sapete per cortesia darmi una mano?

grazie