Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int * divisor(int n)
{
    int vector[10];
    for(int i=0;i<n;i++)
        vector[i]=i;
   
    return vector;
}
int main(void)
{
    int num,*ptr;
    cout<<"Introduce un numero"<<endl;
    cin>>num;
   
    *ptr=divisor(num);
   
    cout<<ptr;
    return 0;
}
Título: Re: Devolver un vector en una funcion
Publicado por: leogtz en 12 Enero 2011, 00:45 AM
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int *divisor(int n)
{
    int *vector = new int[n];
    for(int i = 0; i < n; i++)
        vector[i] = i;

    return vector;
}
int main(void)
{
    int num;
    cout<<"Introduce un numero"<<endl;
    cin>>num;

    int *ptr = divisor(num);

    for(unsigned int i = 0; i < num; i++)
    cout << *(ptr + i) << " ";

    return 0;
}
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 (cpp) [Seleccionar]

#include <iostream>
using namespace std;
int *divisor(int n)
{
   int *vector = new int[n];
   for(int i = 0; i < n; i++)
       vector[i] = i;

   return vector;
}
int main(void)
{
   int num;
   cout<<"Introduce un numero"<<endl;
   cin>>num;

   int *ptr = divisor(num);

   for(unsigned int i = 0; i < num; i++)
    cout << *(ptr + i) << " ";

delete(ptr);
   return 0;
}


Saludos.
Título: Re: Devolver un vector en una funcion
Publicado por: leogtz en 12 Enero 2011, 09:41 AM
Cita de: Khronos14 en 12 Enero 2011, 08:27 AM
Leo, se te olvidó liberar la memoria al final del programa ;)


Cierto, una errata mía.