Foros del Web » Programación para mayores de 30 ;) » Programación General »

Regresar un vector en una funcion en C.

Estas en el tema de Regresar un vector en una funcion en C. en el foro de Programación General en Foros del Web. Hola tengo una funcion en C y le envio varios parametros entre ellos 2 vectores eso esta bien pero el inconveniente es que cuando quiero ...
  #1 (permalink)  
Antiguo 02/11/2004, 12:55
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 20 años, 4 meses
Puntos: 0
Regresar un vector en una funcion en C.

Hola tengo una funcion en C y le envio varios parametros entre ellos 2 vectores eso esta bien pero el inconveniente es que cuando quiero que me regrese un vector no me lo hace y me manda un error , la funcion es esta:

Código:
int multi(int i_ini, int i_fin, int ini_vector2, int vector1[], int vector2[]){
   int i;
   int resul[15];
   for(i=i_ini;i<=i_fin;i++){
   	if(vector1[i] == 0 && vector2[ini_vector2] == 0){
      	resul[i] = 0;
      }
      if(vector1[i] == 0 && vector2[0] == 1){
      	resul[i] = 0;
      }
      if(vector1[i] == 1 && vector2[0] == 0){
      	resul[i] = 0;
      }
      if(vector1[i] == 1 && vector2[0] == 1){
      	resul[i] = 1;
      }
   }
   return resul;
}
y quiero que cuando mande llamar a la funcion otro vector reciba el vector que regresa la funcion.

Espero alguien sepa como se hace

SALUDOS

GRACIAS

__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #2 (permalink)  
Antiguo 02/11/2004, 15:18
 
Fecha de Ingreso: septiembre-2004
Mensajes: 30
Antigüedad: 19 años, 7 meses
Puntos: 0
El problema es que para devolver un vector, debes cambiar el valor de retorno de la funcion por esto int *multi asi podrás retornar un puntero al vector.

También debes modificar la funcion, asignandole memoria dinamica con malloc() porque sino el vector result desaparece al salir de la funcion.

El codigo mas o menos sería asi:

int *multi(int i_ini, int i_fin, int ini_vector2, int vector1[], int vector2[]){
int i;
int *resul=malloc(15*sizeof(int));
for(i=i_ini;i<=i_fin;i++){
if(vector1[i] == 0 && vector2[ini_vector2] == 0){
resul[i] = 0;
}
if(vector1[i] == 0 && vector2[0] == 1){
resul[i] = 0;
}
if(vector1[i] == 1 && vector2[0] == 0){
resul[i] = 0;
}
if(vector1[i] == 1 && vector2[0] == 1){
resul[i] = 1;
}
}
return resul;
}

un saludo
Skelter
  #3 (permalink)  
Antiguo 03/11/2004, 10:15
 
Fecha de Ingreso: septiembre-2004
Mensajes: 51
Antigüedad: 19 años, 7 meses
Puntos: 1
Gracias Skelter lo voy a probar y regreso para contarte como estuvo

GRACIAS
  #4 (permalink)  
Antiguo 14/03/2008, 06:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Regresar un vector en una funcion en C.

nesecito un favor para hora por favor

nececito hacer una funcion que retorne el producto estandar de los vatores A y B de n elementos. por favor qu e es para un examen de hoy
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:23.