Breve duvida sobre ponteiro em array bidimensional

Boa noite, estou com uma duvida/ probleminha em questao a ponteiros ja que ainda nao to dominando muito bem esse recurso…
É o seguinte, brevemente, eu tentei passar um codigo enorme concentrado tudo na main pra funçoes auxiliares. Eu cirei uma que criasse e preenchesse uma matriz 10x10. Ai eu criei uma funçao que recebe essa matriz e basicamente a printa, mas to tendo problema nessa parte… Eu quero passar o ponteiro da matriz, ou se houvesse outro jeito/melhor aceitaria ajuda, como falei, ponteiros ainda nao to dominando nada. Abraço!

#include <ctype.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
#define NLinhasMax 10
#define NColunasMax 10

void printa_mapa(int lines, int columns, char **frame)
{
int linha, coluna;

 ///Printa mapa com cobra no lugar inicial
for(linha=0; linha<lines; linha++)                                       /* Printar o resultado inicial de como fica a matriz mapa */
{   for(coluna=0; coluna<columns; coluna++)
        printf("%c ", *(*(frame+linha)+coluna));                                /* INICIO COBRA  INICIO COBRA INICIO COBRA INICIO COBRA INICIO COBRA INICIO COBRA INICIO COBRA INICIO COBRA*/
    printf("\n");
}

}

void mapa_fase1(void)
{
char matriz[NLinhasMax][NColunasMax];
int linha, coluna, i;
int *ponteiro;
ponteiro = &matriz[0][0];

///Cria a matriz do mapa do snake
for(linha=0; linha<NLinhasMax; linha++)                                 /* Deixar a matriz que seria a tabela com as bordas definidas por # e o interior como "nada", ou espaço realmente */
{  for(coluna=0; coluna<NColunasMax; coluna++)
     {   if (linha==0 || linha==(NLinhasMax - 1)
             || coluna==0 || coluna==(NColunasMax - 1))                 /*Se for a primeira ou a ultima linha, preenche tudo com #. Se for a primeira ou a ultima coluna, também. Resto "espaço" */
            matriz[linha][coluna] = '#';
         else
            matriz[linha][coluna] =' ' ;                                /* TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA TABELA */
     }
}

printa_mapa(NLinhasMax,NColunasMax,ponteiro);

}
int main()
{
mapa_fase1();

return 0;
}

Viuche que coisa mal formatada. Tem como repostar o código? Assim compreenderemos melhor!

o/