Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con funcion/arreglo

Estas en el tema de Problema con funcion/arreglo en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un programa en que necesito crear un arreglo de 10 elementos, pero tengo que hacerlo mediante una funcion, es posible hacer eso ...
  #1 (permalink)  
Antiguo 08/11/2011, 18:26
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Pregunta Problema con funcion/arreglo

Hola, estoy haciendo un programa en que necesito crear un arreglo de 10 elementos, pero tengo que hacerlo mediante una funcion, es posible hacer eso en C++, y me pregunta seria como, puesto que me urge saber eso, de antemano grax por su respuesta.

Saludos
  #2 (permalink)  
Antiguo 08/11/2011, 18:46
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Problema con funcion/arreglo

Código C++:
Ver original
  1. void crear_arreglo(){
  2.  
  3.     int arreglo[10];
  4. }
  5.  
  6. int main(){
  7.    crear_arreglo();
  8.  
  9.    return 0;
  10. }
  #3 (permalink)  
Antiguo 08/11/2011, 18:56
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema con funcion/arreglo

Cita:
Iniciado por gorystyle Ver Mensaje
Código C++:
Ver original
  1. void crear_arreglo(){
  2.  
  3.     int arreglo[10];
  4. }
  5.  
  6. int main(){
  7.    crear_arreglo();
  8.  
  9.    return 0;
  10. }
yo tambien llegue a esa conclusion pero aqui el problema, estoy haciendo un menu, en que la primera opcion es crear el arreglo, y la segunda es introducir datos en ese arreglo, ese es el problema, como hago para usar ese arreglo de esa funcion
  #4 (permalink)  
Antiguo 08/11/2011, 19:36
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Problema con funcion/arreglo

Cita:
Iniciado por baker1562 Ver Mensaje
yo tambien llegue a esa conclusion pero aqui el problema, estoy haciendo un menu, en que la primera opcion es crear el arreglo, y la segunda es introducir datos en ese arreglo, ese es el problema, como hago para usar ese arreglo de esa funcion
en la opcion 2 llamas a una funcion y dentro de esta llamas a la funcion de crear un arreglo una vez creado el arreglo trabajas la 2da funcion normalmente ya con el arreglo creado
  #5 (permalink)  
Antiguo 08/11/2011, 20:05
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: Problema con funcion/arreglo

claro recordar que deveras poner un bool o bandera para checar que el arreglo se haya creado ya que si no lo crea e ingresa directo a la opcion dos crash ejje
  #6 (permalink)  
Antiguo 08/11/2011, 20:31
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema con funcion/arreglo

esto es lo que llevo

Código C++:
Ver original
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <Windows.h>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. void crear()
  9. {
  10.     int arregloCola[2];
  11.     cout<<"Creando cola, espere por favor....."<<endl;
  12.     Sleep(5000);
  13.     system("cls");
  14.     cout<<"Cola creada con exito!!!"<<endl;
  15.  
  16. }
  17.  
  18. int main()
  19. {
  20.     int opcion;
  21.     int respuesta=1;
  22.  
  23.     while(respuesta!=0)
  24.     {
  25.         cout<<"***********Menu Cola***********"<<endl;
  26.         cout<<"Digite#1, para crear el arreglo"<<endl;
  27.         cout<<"Digite#2, para ingresar un dato"<<endl;
  28.         cout<<"Digite#3, para mostrar frente"<<endl;
  29.         cout<<"Digite#5, para mostrar arreglo"<<endl;
  30.         cout<<"Digite#6, para eliminar frente"<<endl;
  31.         cout<<endl;
  32.         cout<<"Que opcion desea realizar?"<<endl;
  33.         cin>>opcion;
  34.         system("cls");
  35.  
  36.         switch(opcion)
  37.         {
  38.              case 1:
  39.                  {
  40.                      crear();
  41.                      cout<<endl;
  42.                  }
  43.              break;
  44.  
  45.              case 2:
  46.                  {
  47.                      
  48.                  }
  49.          break;
  50.         }
  51.  
  52.         cout<<"Desea realizar otra accion,digite#1 para si, o digite#0 para salir?"<<endl;
  53.         cin>> respuesta;
  54.         system("cls");
  55.     }
  56.  
  57.     return 0;
  58.  
  59. }

la verdad no se como hacer lo que me dijo gorystyle y no se que hacer en la opcion 2, o como hacer para llamar a ese arreglo
  #7 (permalink)  
Antiguo 09/11/2011, 05:18
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema con funcion/arreglo

Eso esta mal, cuando se termina la funcion se va a perder los datos porque ese arreglo se define en la memoria volatil.

Primero de todo para resolver el problema de como llamarlo deberas devolver un puntero al arreglo. Segundo deberas usar new o malloc para reservar memoria dinamica(malloc se usa en C, para C++ es recomendable new).

Código C++:
Ver original
  1. int * crear(int longitud)
  2. {
  3.       return new[longitud];
  4. }
  5.  
  6. void procesar(int * pila)
  7. {
  8.     cout << pila[5] <<endl;
  9. }
  10.  
  11. int main()
  12. {
  13.     int * pila = crear(10);
  14.     pila[5] = 10;
  15.     procesar(pila);
  16. }
  #8 (permalink)  
Antiguo 09/11/2011, 09:39
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Problema con funcion/arreglo

Cita:
Iniciado por sam90 Ver Mensaje
Eso esta mal, cuando se termina la funcion se va a perder los datos porque ese arreglo se define en la memoria volatil.

Primero de todo para resolver el problema de como llamarlo deberas devolver un puntero al arreglo. Segundo deberas usar new o malloc para reservar memoria dinamica(malloc se usa en C, para C++ es recomendable new).

Código C++:
Ver original
  1. int * crear(int longitud)
  2. {
  3.       return new[longitud];
  4. }
  5.  
  6. void procesar(int * pila)
  7. {
  8.     cout << pila[5] <<endl;
  9. }
  10.  
  11. int main()
  12. {
  13.     int * pila = crear(10);
  14.     pila[5] = 10;
  15.     procesar(pila);
  16. }
disculpa, me imagino que crear se crea el arreglo de 10 posiciones, y el de procesar seria el de ingresar un dato en el arreglo, cierto?(se puede meter el dato en el arreglo dentro de la funcion o afuera)
  #9 (permalink)  
Antiguo 09/11/2011, 09:52
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema con funcion/arreglo

Se puede modificar donde quieras, siempre y cuando mantegas el puntero a la vista. Por eso fijate que a procesar le doy pila como argumento, asi dentro de esta funcion sabemos donde esta el arreglo que creamos.

Etiquetas: funcion, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.