Buenas, voy al grano, el compilador me devuelve el siguiente error:

Código :

cannot convert `char (*)[30]' to `char**' for argument `1' to `char intercambio(char**, char**, char**)' 



Código :

#include <stdio.h>
#include <conio2.h>
#include <string.h>
char intercambio(char *frase1[], char *frase2[], char *contenedor[]);
int main()
{
char frase1[30],frase2[30],contenedor[30];
printf("Dame dos frases\n");
gets(frase1);
gets(frase2);
intercambio(&frase1,&frase2,&contenedor);
printf("Frases intercambiadas, Frase1: %s \n Frase2: %s",frase1,frase2);
getch();
}

char intercambio(char *frase1[], char *frase2[],char *contenedor[])
{
strcpy(*contenedor,*frase1);
strcpy(*frase1,*frase2);
strcpy(*frase2,*contenedor);
}



Llevo un rato dandole vueltas y no se cual es el fallo, nunca habia tratado con strings en funciones y la verdad estoy bastante perdido, aver si sabeis decirme donde está el fallo.

Saludos y gracias.