[C con Clase] Definir una variable int*, int** , ... , int **...* en runtime
Fabian Arenas
lordjerhyn en gmail.com
Mie Ago 27 04:25:06 CEST 2008
El 24 de agosto de 2008 16:37, Docma <docma7 en terra.es> escribió:
> Hola Carles,
>
> Creo que aquí esta Tu solucion.
>
> C++ permite la Declaración ( Creación ) de Variables en tiempo de
> ejecución. Estas variables son llamadas "Variables Referenciadas
> Anonimas" es decir abreviando, "Variables Anonimas".
>
Variables anonimas???? ... no las conosco .... como se aplicaria a la duda
del societe¿
>
> Con las variables anonimas puedes solucionar tu problema ya que puedes
> declarar la variable que necesites en tiempo de ejecución y definirle el
> tipo y el tamaño que necesites para el Array ( Arreglo ).
>
>
> Estoy aTu disposición para cualquier duda que tengas.
>
>
> Un Saludo
>
>
> Docma
>
>
>
>
>
> David fire escribió:
> > hola
> > me quede pensando, un *int es un puntero a un int
> > **int es un puntero a un puntero de int
> > un *** es un puntero a un puntero de int
> > entonces ***int es lo mismo que **int
> > de cualquier manera
> > por que una usas una lista?
> > hace una clase dimensión que tenga apuntadores a las dimensiones
> > siguientes
> >
> > vos tenes una dimension que va a ser la cabecera cuando quieras ir a
> > la posición (x;y;z;q;j;i) le pasas a la cabecera un arreglo con estos
> > datos y la cantidad de datos (las dimenciones) entonces la cabecera
> > que hace, a su "hija" x le pasa (y;z;q;j;i) y n-1
> > y esa a su vez le pasa a su hija y (z;q;j;i) hasta que llegas a donde
> > queres ir, la ultima te devuelve un puntero al dato o el dato.
> >
> > en realidad no hace falta que llames al siguiente por que bastaria que
> > hagas
> > this.posicion[x]->posicion[y]->posicion[z]->posicion[q]....->posicion[i]
> > posicion es un arreglo de **int menos el ultimo que es un puntero a
> > int o un arreglo de ints directamente.
> > como sabes que es? bueno cuando generas las dimenciones la ultima
> > apunta a ints y no a punteros de int.
> >
> > supongo que lo tenes que hacer como ejercicio para la facultad o algo
> > asi por que si no corres el riesgo de quedarte sin memoria.
> >
> > saludos
> > David
> >
> >
> >
> >
> >
> > El 24 de agosto de 2008 15:32, Fabian Arenas <lordjerhyn en gmail.com
> > <mailto:lordjerhyn en gmail.com>> escribió:
> >
> > El 24 de agosto de 2008 7:49, carles <carsato1 en yahoo.es
> > <mailto:carsato1 en yahoo.es>> escribió:
> >
> > Hola
> >
> > Quisiera crear una matriz de n dimensiones dinámica. Para ello
> he
> > pensado en crear un puntero unsigned int**...* de n dimensiones y
> > reservar espacio con el operador new, para ello haría falta
> > una funcion
> > de reserva para cada dimension, pero eso es otra historia.
> > El problema con el que me he encontrado es que no puedo
> > reservar una
> > variable int*...* en tiempo de ejecución
> >
> > Lo que intento hacer es crear una clase que tenga la variable
> > int*...*, para ello hago
> >
> > int * matriz;
> >
> > y una vez sabida la dimensión pretendo cambiar el tipo
> > de la variable
> > "matriz" a int *...*, ahí es donde tengo el problema, ya que
> > eso no lo
> > permite el compilador por ninguno de los métodos de cásting que
> he
> > encontrado en manuales.
> >
> > ¿Alguien puede sugerirme alguna solución? ¿Hay otro, o algún,
> > método
> > para hacer lo que yo quiero?
> >
> > Gracias por vuestro tiempo ;)
> >
> > Un saludo.
> >
> >
> >
> > mmmm la verdad es que lo estuve pensando .... y lo unico que se me
> > ocurrio es que crearas una clase .... la cual tubiera no se po:
> > private:
> > int *matriz;
> > int **matriz;
> > ....
> > ....
> > int
> >
> ***********************************************************************matriz;
> >
> > y que luego le dijeras al user que ingrese la dimension para
> > trabajar .... o la puedes definir segun los datos ... y a raiz de
> > esta .... trabaje con switch para el tipo de matriz ...
> >
> > eso se me ocurrio ... medio chanta ... pero funciona ....
> >
> > sl2
> >
> >
> >
> >
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> > <mailto:Cconclase en listas.conclase.net>
> >
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> > <http://listas.conclase.net/index.php?gid=2&mnu=FAQ>
> >
> >
> >
> >
> > --
> > Fabian Arenas L.
> > Estudiante de Ingeniería en Informática. UTEM
> > Web: http://eterniosilicio.blogspot.com/
> > Linux Registered User #476277 - http://counter.li.org/
> > Si nada te resulta.......Rutea el algoritmo po GIL!!!
> >
> >
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> > <mailto:Cconclase en listas.conclase.net>
> >
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> > <http://listas.conclase.net/index.php?gid=2&mnu=FAQ>
> >
> >
> >
> >
> > --
> > (\__/)
> > (='.'=)This is Bunny. Copy and paste bunny into your
> > (")_(")signature to help him gain world domination.
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> >
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
--
Fabian Arenas L.
Estudiante de Ingeniería en Informática. UTEM
Web: http://eterniosilicio.blogspot.com/
Linux Registered User #476277 - http://counter.li.org/
Si nada te resulta.......Rutea el algoritmo po GIL!!!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080826/83edc642/attachment.html>
Más información sobre la lista de distribución Cconclase