Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2009, 12:25
jessiebm
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años, 2 meses
Puntos: 0
Modificar variable arreglo dentro de funcion con puntero

Hola, buen día. Mi problema en C es el siguiente:

Necesito que una función me regrese ciertos valores, pero son varios y no los haré solo con return. Para esto quiero mandar apuntadores que quiero que se modifiquen dentro y los pueda usar fuera. Tengo lo siguiente:

NOTA: Mi funcion main esta en un archivo cpp, pero la funcion esta hecha en C.

int main(){
int k=20;
int* indice(new int[k]);
int* distancia(new int[k]);

//Declaracion de otras variables

r = searchNN (S,2,k,true,indice,distancia);
}


Tdist searchNN (Index S, Obj obj, int k, bool show, int* indice, int* distancia)

{ bkt *tree = (bkt*)S;
Tdist mdif;
Tcelem res = createCelem(k);
//res = createCelem(k);
_searchNN (&tree->node,obj,&res,tree->step);
if (show) /*showCelem (&res);*/ {
for( k = 0; k < res.csize; ++k ){
printf("%d %d %d\n", (k+1), res.elems[k].id, res.elems[k].dist);
indice[k]=(int) res.elems[k].id;
distancia[k] = (int) res.elems[k].dist;

}
}

mdif = radCelem(&res);
freeCelem (&res);
return mdif;
}



Segun veo, los valores si se le estan pasando bien dentro de la funcion searchNN, pero si despues los quiero usar fuera de la funcion, es decir, en main, lo que imprimo en pantalla es pura basura.

Gracias.