#1 Punteros arreglos y funciones
A ver si se me entiende lo que quiero preguntar...
Quiero hacer una función que tome un vector de 100 numeros y me devuelva otro
vector de 10 numeros y cada componente de este último se corresponde con la suma
de diez componentes del vector de 100,( en realidad esto no es lo que quiero hacer, pero vale como ejemplo de lo que no se.)
int *sumar(int *vector)
{int suma[10];
int t=-1;
for(int j=0;j<100;j+=10)
{t++;
suma[t]=0;
for(int i=j;i<(j+10);i++)
suma[t]+=vector[i];
}
return suma;
}
void main (void)
{int *vector_grande1=new int[100];
int *vector_grande2=new int[100];
int *vector_sumas1=new int[10];
int *vector_sumas2=new int[10];
//...
//...
//suponganse que aquí vector_grande ya está inicializado
vector_sumas1=sumar(vector_grande1);
//El problema aparece ahora
vector_sumas2=sumar(vector_grande2);
//EL PROBLEMA ES QUE AHORA vector_sumas2 tiene la misma dirección que
//vector_sumas1 y por lo tanto pierdo la primer suma!!!!!!!!!!!!!!
//¿¿¿¿¿¿¿¿¿¿¿ALGUIEN SABE COMO HACER ESTO????????????????????
}
Quiero hacer una función que tome un vector de 100 numeros y me devuelva otro
vector de 10 numeros y cada componente de este último se corresponde con la suma
de diez componentes del vector de 100,( en realidad esto no es lo que quiero hacer, pero vale como ejemplo de lo que no se.)
int *sumar(int *vector)
{int suma[10];
int t=-1;
for(int j=0;j<100;j+=10)
{t++;
suma[t]=0;
for(int i=j;i<(j+10);i++)
suma[t]+=vector[i];
}
return suma;
}
void main (void)
{int *vector_grande1=new int[100];
int *vector_grande2=new int[100];
int *vector_sumas1=new int[10];
int *vector_sumas2=new int[10];
//...
//...
//suponganse que aquí vector_grande ya está inicializado
vector_sumas1=sumar(vector_grande1);
//El problema aparece ahora
vector_sumas2=sumar(vector_grande2);
//EL PROBLEMA ES QUE AHORA vector_sumas2 tiene la misma dirección que
//vector_sumas1 y por lo tanto pierdo la primer suma!!!!!!!!!!!!!!
//¿¿¿¿¿¿¿¿¿¿¿ALGUIEN SABE COMO HACER ESTO????????????????????
}
0