[C con Clase] Cambiar el tipo de un puntero, p.ej de int* a int**, en runtime

carles carsato1 en yahoo.es
Vie Ago 22 14:02:58 CEST 2008


Hola a todos

  Quiero trabajar con una matriz de n dimensiones 

	matriz[0][1]...[n-1]

  Pero la dimension de la matriz se conoce en ejecución y no en tiempo
de compilación. Esta matriz está dentro de una clase y antes de recurrir
a hacer una clase por cada dimensión me gustaría saber si puedo cambiar
el tipo de matriz para que se pueda reservar espacio segun la dimensión
que tenga.

  Lo que he estado intentando es definir la matriz como un puntero

 	int *matriz;

  y después intentar cambiar el tipo de matriz a int**, int***, para las
diferentes dimensiones, para poder reservar espacio dinamicamente con el
operador new. 

  He intentado cosas tipo
	
	matriz=reinterpret_cast<int**>(matriz);
	matriz=dynamic_cast<int**>(matriz);
	...
	etc

	La conversion explicita no funciona y ninguna de las pruebas que he
hecho con dynamic_cast, reinterpret_cast, etc ha funcionado.

	La idea es usar un switch que cambie el tipo de "matriz" dependiendo de
las dimensiones.


En fin. 
Espero que haya quedado claro.
Gracias por tu tiempo.






Más información sobre la lista de distribución Cconclase