Hola de nuevo!
provando una cosas, me equivoce en el codigo y vi que funcionaba igual.
1r os dejo el fragmento para saber de que estoy hablando! xD 
Código:
 int main()
{
	 int *ar;
	for(int i=0; i<TAM; i++) ar[i]=i;
	for(int i=0; i<TAM; i++) cout<<ar[i]<<endl;
       return 0;
}
  Esto funciona, queria saber porque? :S
Ami en la universidad siempre me habian dixo que la forma correcta era 
Y claro viendolo asi veo que el puntero no necesito inicializarlo previamente con un tampaño xd
Se puede hacer ? o eso a lo largo da problemas? 
Porque para array que no sabia el tamaño exacto usaba vectores pero claro si esto no es problema creo que me renta mas
Gracias