ayuda con funciones

Iniciado por loadenro, 2 Abril 2014, 22:51 PM

0 Miembros y 1 Visitante están viendo este tema.

loadenro

cree una estructura dentro de la funcion histograma de la siguente forma:
struct datos
{
std::vector<float> simbolos;
std::vector<float> frecuencias;
}cd1;

y en  cd1 copie los vectores frecuencias y simbolos, pero no se como devolver cd1, creo q lo que tengo mal es la declaracion de la funcion histograma ¿como deberia declarar esa funcion para que pueda retornar una estructura?

xaps

No declares la estructura dentro de la función. Declárala como global y usa una función del tipo de tu estructura, tal como te ha indicado amchacon.

De todas formas, te recomiendo que lo hagas por referencias. Es mucho más fácil y te ahorras tener que declarar una estructura nueva.
"The programmers of tomorrow are the wizards of the future" - Gave Newel

loadenro

Ya pude arreglar las dificultades declarando las funciones, pero al ejecutar el programa en su totalidad se me presenta un error que es el siguiente:
se ha producido una violacion de acceso a memoria
dicho error se presenta cuando estoy intentando ejecutar la siguiente linea:
d.push_back(sumpar);
no entiendo porque se presenta el error si solamente le estoy diciendo q escriba en el vector el valor de sumpar, no se si es un problema de falta de memoria o algo asi, cualquier ayuda les agradeceria mucho. nota: estoy trabajando en Dev c++4.9.9.2

eferion

Es posible que el error se esté produciendo en la línea inmediatamente anterior...

loadenro

pues no creo, estas son las lineas anteriores:
while (sumpar<=tem/2)//operacion principal de shannon-fano, ir dividiendo en la mitad las frecuencias
                    {sumpar=sumpar+vida.frecuencias[v];
           u=u+1;
               v=v+1;
           }
              if (u>1) //quito una para q qde siempre por debajo de la mitad o en la mitad
              {
                           sumpar=sumpar-vida.frecuencias[v-1];
                           u=u-1;
                          }
d.push_back(sumpar);