Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Fer995 en 2 Marzo 2011, 20:53 pm



Título: ayuda con esta funcion
Publicado por: Fer995 en 2 Marzo 2011, 20:53 pm
necesito ayuda con esta funcion:

STATUS readItem(char **cadena, char *read_item);

necesito que haga esto:

obtiene el siguiente ítem de la cadena de entrada, modificando a su vez dicha cadena para que apunte a la siguiente posición a dicho ítem. La función copiará en read_item el ítem leído.

y es que el problema me viene porque no entiendo bien a que se refiere con que tiene que apuntar al siguiente item y no entiendo lo del doble * en cadena..

gracias por la ayuda!


Título: Re: ayuda con esta funcion
Publicado por: El_Java en 6 Marzo 2011, 01:26 am
Hola Fer995, no conozco para nada la función que quieres usar pero por lo que he visto en tu comentario...
en *readitem se creara un puntero señalando al item que quieras comprobar su estado, por lo que tienes que ponerlo ahi.
y el char **cadena, indica que en la función se creará un puntero que señala a otro puntero de tipo char, al llamarse cadena intuyo que el puntero apuntara a una cadena como "char CADENA[10]", entiendes?

yo estoy comenzando con C++, asi que corrijanme si me equivoco  :xD


Título: Re: ayuda con esta funcion
Publicado por: Akai en 6 Marzo 2011, 01:42 am
Lo del char **cadena, es un doble puntero, también visto como un puntero a puntero a carácter, puntero a vector de caracteres, o por ejemplo, un vector de palabras.

Imagínatelo como una matriz, al fin y al cabo es eso. salvo que en vez de ser una matriz de enteros, es una matriz de caracteres. Acceder a cadena[j] te da un carácter, acceder a cadena (nótese sólo un []) te da una cadena.

Espero haberme explicado bien, de forma que se entienda.

Por otro lado, el enunciado es confuso, pero básicamente te está diciendo, que una vez copies el elemento, modifiques el doble puntero para que apunte al siguiente elemento al que acabas de copiar.

cadena++;

de esa forma desplazas el puntero a la siguiente "palabra". Una forma bastante oscura, pero bueno...