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.