Código C++:
Ver originaldouble* leervector_flujo(istream& is, double* x, int n){
for(int i = 0; i < n; i++){
x[i] = leer_double(is);
}
return x;
};
double* x es un puntero, luego cualquier cambio que hagas sobre la memoria apuntada por
x se verá reflejado fuera de la función... la instrucción
return x; únicamente tiene sentido si piensas concatenar operaciones... por ejemplo:
Código C++:
Ver originalescribirvector_flujo(cout,leecvector_flujo(cin,x,10),10);
Pero claro, este tipo de estructuras no tienen demasiado sentido tratándose de variables que no sean clases o estructuras con métodos propios... el return te lo puedes ahorrar. Esto mismo es aplicable a la escribirvector_flujo, escribir_doble y escribir_char. No tiene demasiado sentido que retornen algo.
Por otro lado no has de olvidar que siempre que escribas un
new tienes que escribir el correspondiente
delete. De lo contrario tu programa presentará fugas de memoria y eso, amigo mio, es un cáncer que se puede llegar a tragar toda la memoria de tu equipo con el tiempo.
Código C++:
Ver originalfor(int i = 0; i < tamvec; i++){
operacion = mul[0] * numeros[i];
resultado[i]=operacion;
escribirvector_flujo(cout, resultado, i);
}
Ahí estás escribiendo
tamvec veces el vector
resultado. El problema, aparte de imprimirlo más veces de las necesarias, es que estás sacando resultados intermedios... la llamada a la función imprimir debería estar
fuera del bucle.
Un saludo