[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