Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gonzalo_C en 8 Febrero 2012, 22:40 pm



Título: Funcion y puntero
Publicado por: gonzalo_C en 8 Febrero 2012, 22:40 pm
Hola,

Llevo unos dias intentado resolver este pequeño problema, y he decidido postear aqui a ver si podeis ayudarme.

Tengo esta funcion:

Código:
BOOL buscarElementoEnObjeto(const ELEMENTO *elem, const OBJETO *obj) 

Tiene como parametros un puntero a elem (que es un entero), y un puntero a una estructura que se llama OBJETO:

Código:
typedef struct {
    ELEMENTO elem;
    unsigned int repes;
} OBJETO;
lo que hace es eterminar si un elemento se encuentra en un objeto.


Vale, luego en otro lado tengo:

Código:
int buscarObjetoEnMulticnj(const ELEMENTO *e, const MULTICNJ *mc)

que tiene como argumentos un puntero a un elemento (un entero) y un muntero a la estructura MULTICNJ:

Código:
typedef struct {
    OBJETO OBJETOS[MAX_OBJS];  
    unsigned int n_objs, card;
} MULTICNJ;

lo que hace es buscar un elemento en un multiconjunto y devuelve el indide del array donde se encuentra o -1 si no se encuentra.

Mi duda es la siguiente:

Si quiero acceder a la primera funcion desde la segunda como debo de hacerlo, ya que he de meter la direccion de un array de objeto, yo he intentado:
Código:
buscarElementoEnObjeto(e, mc.OBJETOS[i]) 

donde i es un entero, pero no he conseguido hacerlo funcionar.

como he de meter la direccion de OBJETOS en la funcion?


Gracias.


Título: Re: Funcion y puntero
Publicado por: eleon en 8 Febrero 2012, 23:43 pm
Difícilmente se va a comprender qué hace el código si no pones un trozo completo donde se puedan ver las instrucciones; entre "ELEMENTO", "elemento", "elem", "OBJETO", "OBJETOS" y "objeto" te mareas después de leer dos líneas.

Citar
Si quiero acceder a la primera funcion desde la segunda como debo de hacerlo, ya que he de meter la direccion de un array de objeto, yo he intentado:

Código:
buscarElementoEnObjeto(e, mc.OBJETOS[i]) 


donde i es un entero, pero no he conseguido hacerlo funcionar.

Todas las direcciones se devuelven con el operador Address-Of: &

Si quieres mandar la dirección de un elemento de un array que está dentro de una estructura debes poner: "&objeto.array [ i ]".

Saludos.


Título: Re: Funcion y puntero
Publicado por: gonzalo_C en 9 Febrero 2012, 17:01 pm
Gracias, era ese el problema, que tenia que poner:
&(mc.OBJETOS