Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: d00ze13 en 11 Enero 2011, 23:57 pm



Título: Devolver un vector en una funcion
Publicado por: d00ze13 en 11 Enero 2011, 23:57 pm
Hola buenas, necesito para un programa devolver en una funcion un vector a traves de un puntero, os pongo un ejemplo a ver si me podriais ayudar.

Código
  1. #include <iostream>
  2. using namespace std;
  3. int * divisor(int n)
  4. {
  5.    int vector[10];
  6.    for(int i=0;i<n;i++)
  7.        vector[i]=i;
  8.  
  9.    return vector;
  10. }
  11. int main(void)
  12. {
  13.    int num,*ptr;
  14.    cout<<"Introduce un numero"<<endl;
  15.    cin>>num;
  16.  
  17.    *ptr=divisor(num);
  18.  
  19.    cout<<ptr;
  20.    return 0;
  21. }
  22.  


Título: Re: Devolver un vector en una funcion
Publicado por: leogtz en 12 Enero 2011, 00:45 am
Código
  1. #include <iostream>
  2. using namespace std;
  3. int *divisor(int n)
  4. {
  5.    int *vector = new int[n];
  6.    for(int i = 0; i < n; i++)
  7.        vector[i] = i;
  8.  
  9.    return vector;
  10. }
  11. int main(void)
  12. {
  13.    int num;
  14.    cout<<"Introduce un numero"<<endl;
  15.    cin>>num;
  16.  
  17.    int *ptr = divisor(num);
  18.  
  19.    for(unsigned int i = 0; i < num; i++)
  20.    cout << *(ptr + i) << " ";
  21.  
  22.    return 0;
  23. }
  24.  


Título: Re: Devolver un vector en una funcion
Publicado por: d00ze13 en 12 Enero 2011, 01:24 am
Mil gracias Leo ;)
new int[n] que es lo mismo que usar malloc? ahí cuanto estarias reservando? para un int?


Título: Re: Devolver un vector en una funcion
Publicado por: bomba1990 en 12 Enero 2011, 01:41 am
new y delte es mas que todo de c++ y malloc para c. hay estarias reservando dependiendo de la variable n que la introduce la persona en el programa.


Título: Re: Devolver un vector en una funcion
Publicado por: Khronos14 en 12 Enero 2011, 08:27 am
Leo, se te olvidó liberar la memoria al final del programa ;)

Código
  1. #include <iostream>
  2. using namespace std;
  3. int *divisor(int n)
  4. {
  5.    int *vector = new int[n];
  6.    for(int i = 0; i < n; i++)
  7.        vector[i] = i;
  8.  
  9.    return vector;
  10. }
  11. int main(void)
  12. {
  13.    int num;
  14.    cout<<"Introduce un numero"<<endl;
  15.    cin>>num;
  16.  
  17.    int *ptr = divisor(num);
  18.  
  19.    for(unsigned int i = 0; i < num; i++)
  20.     cout << *(ptr + i) << " ";
  21.  
  22. delete(ptr);
  23.    return 0;
  24. }
  25.  

Saludos.


Título: Re: Devolver un vector en una funcion
Publicado por: leogtz en 12 Enero 2011, 09:41 am
Leo, se te olvidó liberar la memoria al final del programa ;)


Cierto, una errata mía.