• Miércoles 26 de Junio de 2024, 07:23

Autor Tema:  Crear Arreglos Dinamicos De Punteros A Estructuras  (Leído 5725 veces)

odrium

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Crear Arreglos Dinamicos De Punteros A Estructuras
« en: Lunes 5 de Marzo de 2007, 17:54 »
0
Saludos. Estoy creando una función recursiva para llenar un arbol que va a ser el arbol de decisiones del computador para decidir que jugada tiene que hacer en "La Vieja" o tres en raya. Para eso necesito crear un arbol que comienze con 9 hijos, luego cada hijo tiene que tener 8 hijos, luego cada hijo tiene 7 hijos, y asi hasta llegar al 0.

Para eso necesito crear un arreglo dinamico de punteros a estructuras. Ya que cada vez que llame a la funcion necesita crear un arreglo mas pequeño.

la estructura es esta

struct NODO
{
    NODO *sigs;     Arreglo dinamico
    int cord;           Coordenada
}

Yo solo se programar en C. pero esta aprte la iba a hacer en C++, asi:

NODO *nuevo;
n=3;                  "n" es un valor dado en la llamada a la funcion

nuevo = new NODO[n];

Y me da un error diciendome que no puede convertir "int *" a "NODO *".

No se que pasa por favor ayuda y gracias por adelantado.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #1 en: Lunes 5 de Marzo de 2007, 18:07 »
0
Si estas usando lenguaje C no puedes usar new.

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
struct NODO
{
  NODO *sigs;
  int cord;
}


NODO *nuevo;
n=3;

nuevo = (NODO *)malloc(sizeof(struct NODO)*n);<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

odrium

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #2 en: Lunes 5 de Marzo de 2007, 21:42 »
0
Pero estoy compilando con Borland C/C++. Yo puedo escribir C, C++, o híbrido.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #3 en: Lunes 5 de Marzo de 2007, 21:57 »
0
que raro en VC++ no me da error,

prueba con esto :


Código: Text
  1. struct NODO
  2. {
  3.    NODO *sigs;
  4.    int cord;
  5. };
  6.  
  7.  
  8. int main(int argc, _TCHAR* argv[])
  9. {
  10.    NODO *nuevo;
  11.    int n=3;
  12.    nuevo = (NODO *)new NODO[n];
  13.    return 0;
  14. }
  15.  
  16.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #4 en: Martes 6 de Marzo de 2007, 00:20 »
0
El error debe estar en otra parte del código, eso no da error (o quizá el compilador, pero por lo pronto no creo).

Compilado sin problemas:
Código: Text
  1.  
  2. struct NODO {
  3.        NODO *sigs;
  4.        int cord;
  5. };
  6.  
  7. int main() {
  8.     NODO* nuevo;
  9.     int n = 3;
  10.    
  11.     nuevo = new NODO[ n ];
  12.    
  13.     return 0;
  14. }
  15.  
  16.  
La imaginación es el límite.
Hardware & Software | Mexchip

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #5 en: Martes 6 de Marzo de 2007, 00:33 »
0
no es recomendable mezclar codigo de c y c++ en  un mismo proyecto. Trata de programar en forma mas ordenada.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #6 en: Martes 6 de Marzo de 2007, 00:45 »
0
Cita de: "AnioN"
no es recomendable mezclar codigo de c y c++ en  un mismo proyecto. Trata de programar en forma mas ordenada.
¿Y eso en que lo fundamentas? Al final de cuentas todo sera codigo de maquina, mientras sea legible y logico el codigo fuente del programa...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #7 en: Martes 6 de Marzo de 2007, 03:44 »
0
Creo que ambos tiene razon...

no es recomendable porque aunque eso es aprovechar las virtudes tecnicas de POO y las virtudes de la Programacion estructurada lo cierto es que disminuye ampliamente el objetivo de POO y lo que hace es traer a colacion un codigo mas ilegible... spaguetizado con clases...

Es algo de cuidado y lo cierto a la final es que depende del programador... que si es bueno y metódico de seguro sacara lo mejor de cada cosa...

pero no es lo habitual.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #8 en: Martes 6 de Marzo de 2007, 08:15 »
0
En el caso de C++ un struct es exactamente igual que una clase salvo que sus miembros son por defecto public, en un struct podemos declarar funciones perfectamente por lo que en este caso se entiende perfectamente.

Otro ejemplo de la vida diaria es que la API de Windows esta exportada como C, no vamos a poder usarla desde C++ (directamente) sin mezclar lenguajes.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #9 en: Martes 6 de Marzo de 2007, 12:11 »
0
Cita de: "Eternal Idol"
Cita de: "AnioN"
no es recomendable mezclar codigo de c y c++ en  un mismo proyecto. Trata de programar en forma mas ordenada.
¿Y eso en que lo fundamentas? Al final de cuentas todo sera codigo de maquina, mientras sea legible y logico el codigo fuente del programa...
a vos te parece legible un proyecto con codigo de varios lenguajes?, te parece serio pudiendolo haber resulelto con un lenguaje?

odrium

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #10 en: Martes 6 de Marzo de 2007, 12:26 »
0
Es que yo solo estoy programando en C. Lo unico que aproveche del c++, fue el new y el delete. Que en verdad son funciones. Por lo tanto no estoy programando en c++.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #11 en: Martes 6 de Marzo de 2007, 12:42 »
0
Cita de: "AnioN"
a vos te parece legible un proyecto con codigo de varios lenguajes?, te parece serio pudiendolo haber resulelto con un lenguaje?
Un proyecto es una hipotesis, este codigo que acaban de mostrar es totalmente legible. Y no estamos hablando de lenguajes diferentes como pueden ser Prolog y assembly sino de C y C++, cuando este ultimo contiene al primero.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #12 en: Martes 6 de Marzo de 2007, 12:44 »
0
Cita de: "odrium"
Es que yo solo estoy programando en C. Lo unico que aproveche del c++, fue el new y el delete. Que en verdad son funciones. Por lo tanto no estoy programando en c++.
En realidad son operadores y estas programando en C++ (que como dije antes a grandes rasgos contiene a C), si usaras un compilador de C o le especificaras a tu compilador que compilara ese codigo como C daria errores.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #13 en: Martes 6 de Marzo de 2007, 13:44 »
0
Cita de: "odrium"
Es que yo solo estoy programando en C. Lo unico que aproveche del c++, fue el new y el delete. Que en verdad son funciones. Por lo tanto no estoy programando en c++.
Entonces ya no estas programando en C sino en C++... si vas a trabajar en C no uses ni new ni delete usa malloc y free.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #14 en: Martes 6 de Marzo de 2007, 15:53 »
0
Cita de: "Eternal Idol"
Cita de: "AnioN"
a vos te parece legible un proyecto con codigo de varios lenguajes?, te parece serio pudiendolo haber resulelto con un lenguaje?
Un proyecto es una hipotesis, este codigo que acaban de mostrar es totalmente legible. Y no estamos hablando de lenguajes diferentes como pueden ser Prolog y assembly sino de C y C++, cuando este ultimo contiene al primero.
un proyecto es una forma de organizar las cosas, es como  bien decis, una hipotesis en la cual trabajan varias personas, y si a uno se le ocurre utilizar codigo de C++, cambiando de paradigma por mas que se pueda, las demas personas que solo saben C, en que posicion quedan?

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #15 en: Martes 6 de Marzo de 2007, 16:16 »
0
El paradigma es totalmente independiente del lenguaje.-
El lenguaje solamente es una herramienta. Algunas permiten aplicar cierto paradigma y otras no.-
En un proyecto serio, el paradigma y las herramientas están claramente definidas por lo que este tipo de problemas no tienen lugar.-

 :beer:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Arreglos Dinamicos De Punteros A Estructuras
« Respuesta #16 en: Martes 6 de Marzo de 2007, 16:37 »
0
Cita de: "AnioN"
un proyecto es una forma de organizar las cosas, es como  bien decis, una hipotesis en la cual trabajan varias personas, y si a uno se le ocurre utilizar codigo de C++, cambiando de paradigma por mas que se pueda, las demas personas que solo saben C, en que posicion quedan?
Simple y llanamente en la de estudiantes  ;)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.