Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: programador10 en 11 Junio 2011, 02:54 am



Título: c++ Funciones por referencia
Publicado por: programador10 en 11 Junio 2011, 02:54 am
Hola disculpe no se porque no compila¿?
ayuda!
Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #define max 300
  4. using namespace std;
  5. void llenar(int &a);
  6. void leer(int a,int b,int c);
  7. int main(int argc, char *argv[])
  8. {  
  9.    int num[max],i,x,y,h;
  10.  
  11.    llenar(num);
  12.    leer(x,y,h);
  13.  
  14.    system("PAUSE");
  15.    return EXIT_SUCCESS;
  16. }
  17.  
  18. void leer(int a,int b,int c)
  19. {
  20.     cout<<"Ingrese el valor X ...(0.x)"<<endl;
  21.     cin>>a;
  22.     cout<<"Ingrese el valor Y ...(0.y)"<<endl;
  23.     cin>>b;
  24.     cout<<"Ingrese el valor Z ...(0.z)"<<endl;
  25.     cin>>c;
  26.  
  27. }
  28. void llenar(int &a)
  29. {    
  30.     int i;
  31.          for(i=0;i<max;i++)
  32.          {
  33.               a[i]=0;    
  34.          }
  35. }


Título: Re: c++ Funciones por referencia
Publicado por: Acermax en 11 Junio 2011, 04:43 am
Tu quieres trabajar en la función llenar como si fuera un array, y por el contrario la declaras como un entero.

Citar
http://c.conclase.net/curso/?cap=015b

Cuando pasamos un array como parámetro en realidad estamos pasando un puntero al primer elemento del array, así que las modificaciones que hagamos en los elementos del array dentro de la función serán permanentes aún después de retornar.

Esto significa que declarando simplemente el array bien en la función ya te funciona lo que tu quieres hacer.

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #define max 300
  4. using namespace std;
  5. void llenar(int a[]);
  6. void leer(int a,int b,int c);
  7. int main(int argc, char *argv[])
  8. {
  9.    int num[max],i,x,y,h;
  10.  
  11.    llenar(num);
  12.    leer(x,y,h);
  13.  
  14.    system("PAUSE");
  15.    return EXIT_SUCCESS;
  16. }
  17.  
  18. void leer(int a,int b,int c)
  19. {
  20.     cout<<"Ingrese el valor X ...(0.x)"<<endl;
  21.     cin>>a;
  22.     cout<<"Ingrese el valor Y ...(0.y)"<<endl;
  23.     cin>>b;
  24.     cout<<"Ingrese el valor Z ...(0.z)"<<endl;
  25.     cin>>c;
  26.  
  27. }
  28. void llenar(int a[])
  29. {
  30.     int i;
  31.          for(i=0;i<max;i++)
  32.          {
  33.               a[i]=0;
  34.          }
  35.          cout << endl;
  36. }
  37.  


Título: Re: c++ Funciones por referencia
Publicado por: programador10 en 11 Junio 2011, 06:18 am
gracias ... MUCHAS gracias.