Les dejo un ejemplo de como crear una matriz de dos dimensiones utilizando punteros, inicializar la matriz e imprimirla, mediante funciones, para esto les dejo el ejemplo del triangulo de Pascal.

#include<iostream>
using namespace std;
//Triangulo de Pascal
//Autor: EAG - v1.0 - 27-11-2013

//int  i,j, dm, M[100][100];


void pascal(int **matriz, int dm){
   //Asigna cero a todos los elementos de la matriz
   for(int i=1; i<=dm; i++)
      for(int j=1; j<=dm; j++)
          matriz[i][j] = 0;

   //Asigna unos (1) a la columna
   for(int i=1; i<=dm; i++)
       matriz[i][1]=1;

   //Triangulo de pascal 
   for(int i=1; i<=dm; i++)
      for(int j=1; j<=dm; j++)
         matriz[i+1][j+1]=matriz[i][j]+matriz[i][j+1];
}

void print(int **matriz, int dm){
  //muestra la matriz
   cout<<"\n";
   for(int i=1; i<=dm; i++)
   { 
      cout<<"\t";
      for(int j=1; j<=dm; j++){ 
         cout<<"  "<<matriz[i][j];          
      }
      cout<<"\n";
   }
   cout<<"\n\n..Fin Proceso..\n\n";
}

int main()
{
	int dm;
   	cout<<"\n\t TRIANGULO DE PASCAL\n";
   	cout<<"\nIngrese Tamano de la Matriz Cuadrada: ";
   	cin>>dm;  //Dimensión de la matriz

	//INICIALIZACION
     	int** matriz=new int*[100]; //def x
        for (int i = 0; i < 100; ++i) //def y
        {
           matriz[i] = new int[100];
        }

	//a
	pascal(matriz, dm);
	print (matriz, dm);
 	//b

   return 0;
}

Saludos