none
definicion de funcion en c++ que devuelve array de floats RRS feed

  • Pregunta

  • Hola,
    necesito definir una función que devuelva un array de floats, pero no conozco muy bien el lenguaje y no se hacerlo muy bien...
    devolviendo un solo float seria asi ¿no?

    static float F1(float a, float b);

    ¿Como definiria entonces para devolver una array de dos floats por ejemplo?he probado de varias maneras pero siempre me da error

    miércoles, 29 de abril de 2009 12:14

Respuestas

  • No puedes devolver un array como parámetro de devolución.

    O bien devuelves un puntero:

    float *F1(float a,float b);

    o bien pasas el array como parámetro por puntero:

    void F1(float a,float b,float *p,int tamArr);

    Tienes que tener en cuenta que debes controlar quién asigna y libera la memoria, que debe ser siempre el mismo (el llamante o el llamado), y el tamaño del array, que también tienes que pasar de algún modo.
    lunes, 4 de mayo de 2009 16:21
    Moderador
  • es facil , puedes usar STL (vienen en el visual studio c++ , forman parte del c/c++ estandar) , dentro de estas librerias tienes un contenedor llamado vector , en el puedes poner int, float , objetos ,etc. y tambien puedes pasarlo como parametro dentro de una funcion o tambien puedes hacer que un funcion devuleva un vector.

    #include <vector>
    using namespace std;
    .....
    .......
    ........
    vector<float> miFuncion(){
       vector<float> v;
    
       for (int i = 1; i < 11; i++)
       {
          v.push_back((float)i);
       }  
    
    return v;
    
    }
    espero haberte ayudado men




    martes, 16 de junio de 2009 17:59

Todas las respuestas

  • No puedes devolver un array como parámetro de devolución.

    O bien devuelves un puntero:

    float *F1(float a,float b);

    o bien pasas el array como parámetro por puntero:

    void F1(float a,float b,float *p,int tamArr);

    Tienes que tener en cuenta que debes controlar quién asigna y libera la memoria, que debe ser siempre el mismo (el llamante o el llamado), y el tamaño del array, que también tienes que pasar de algún modo.
    lunes, 4 de mayo de 2009 16:21
    Moderador
  • es facil , puedes usar STL (vienen en el visual studio c++ , forman parte del c/c++ estandar) , dentro de estas librerias tienes un contenedor llamado vector , en el puedes poner int, float , objetos ,etc. y tambien puedes pasarlo como parametro dentro de una funcion o tambien puedes hacer que un funcion devuleva un vector.

    #include <vector>
    using namespace std;
    .....
    .......
    ........
    vector<float> miFuncion(){
       vector<float> v;
    
       for (int i = 1; i < 11; i++)
       {
          v.push_back((float)i);
       }  
    
    return v;
    
    }
    espero haberte ayudado men




    martes, 16 de junio de 2009 17:59