¡Tienes un lio montado!
Si defines una variable como char ** luego no puedes asignarlo un puntero a char *, tiene que ser a char**.
Para definir una matriz multidimensional tienes que hacerlo así:
Código C++:
Ver originalchar ** matriz
= (char **)malloc(NUMERO_FILAS
*sizeof(char *)); int contador=0;
for( contador=0;contador<NUMERO_FILAS;contador++){
matriz
[contador
] = (char*)malloc(NUMERO_COLUMNAS
*sizeof(char));}
Fíjate que en como está creada la matriz, en la primera instrucción declaras un array de NUMERO_FILAS punteros (son punteros a char, es decir, char *).