El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de C++/C#
Foros del Guru > C++/C#
Usuario Curiosidad en manejo de arrays
Desconocido
Enviado - 13/12/2004
 
Lo que se pretende es definir un array, llamar a una funcion que lo llene con datos y que esta devuelva el array. Ya se que con solo pasar el array como parametro podria hacerse pero queria llegar mas alla y dentro de la funcion declarar un array de estructura semejante y rellenarlo con datos para mas tarde devolverlo, con intencion de asignarlo al primer array.

Cuando declaro el array en la funcion como estatico no funciona, pero si los inicializo de forma dinámica sí funciona.

La cuestion es: ¿Por qué pasa esto? Teoricamente deberia funcionar pero hay algo que esta mal y no consigo averiguar qué es. Espero que podáis ayudarme. Gracias.

Aquí os pongo los código de los dos programas:

//primer programa (no funciona)
#include <stdio.h>
#include <conio.h>
int *introducir (void);
void visualizar (int tablita[5]);
main()
{
int *tabla;
tabla=new int[5];
tabla=introducir();
visualizar (tabla);
getch();
}

int *introducir (void)
{
int *tablon;
tablon=new int[5];
for (int i=0;i<5;i++)
{
printf ("tabla[%d]", i);
scanf ("%d", &tablon[i]);
}
return tablon;
}
void visualizar (int tablita[5])
{
for (int i=0;i<5;i++)
printf ("\ntablita[%d] %d ", i ,tablita[i]);
}

********************************************************************

//--------------- Segundo programa (este es el que funciona) -----------------

#include <stdio.h>
#include <conio.h>
int *introducir (void);
void visualizar (int tablita[5]);
main()
{
int tabla[5];
tabla=introducir();
visualizar (tabla);
getch();
}

int *introducir (void)
{
int tablon[5];
for (int i=0;i<5;i++)
{
printf ("tabla[%d]", i);
scanf ("%d", &tablon[i]);
}
return tablon;
}
void visualizar (int tablita[5])
{
for (int i=0;i<5;i++)
printf ("\ntablita[%d] %d ", i ,tablita[i]);
}
 
 

 

Contactos myStudio Network