Título: Perdido al crear una función con punteros Publicado por: jamatbar en 13 Enero 2014, 18:26 pm Buenas, tengo el siguiente código que convierte dos caracteres hexadecimales en su correspondiente número decimal, y que al meter la secuencia qq sale del programa:
Código: #include <stdio.h> Este código lo entiendo, pero ahora me piden lo siguiente: Modifique el código añadiendo una nueva función leeCaracter que solicite los dos caracteres hexadecimales, y que devuelva: - 0 si se ha introducido el código qq de salida. - 1 si se han introducido dos caracteres hexadecimales correctos La función también devolverá por referencia los dos caracteres hexadecimales leídos. En el caso de que los caracteres hexadecimales no fuesen correctos, la función deberá volver a solicitarlos. Es decir, la función sólo puede devolver 1 y dos caracteres hexadecimales correctos por referencia, o 0 en caso de que se haya introducido el código qq. El programa debe quedar así: salas@318CDCr12: ̃$ ./hexDec7 Introduzca dos caracteres hexadecimales: 22 El valor decimal de 0x22 es 34 Introduzca dos caracteres hexadecimales: 3a El valor decimal de 0x3a es 58 Introduzca dos caracteres hexadecimales: 3A El valor decimal de 0x3A es 58 Introduzca dos caracteres hexadecimales: 3G Error en el segundo valor introducido Introduzca dos caracteres hexadecimales: -1 Error en el primer valor introducido Introduzca dos caracteres hexadecimales: tA Error en el primer valor introducido Introduzca dos caracteres hexadecimales: qq salas@318CDCr12: ̃$ Este ejercicio está en el tema de punteros, vamos, que hay que usar punteros en la nueva función, y no sé como meterle mano al problema. Agradecería mucho alguna explicación o modo de actuar. Gracias de antemano y un saludo! Título: Re: Perdido al crear una función con punteros Publicado por: xiruko en 13 Enero 2014, 21:09 pm Código
Y en el main tendrías que llamarla así: Código
En la llamada a la función, lo que haces es pasarle la referencia de las variables a la función; es decir, le pasas su dirección de memoria para poder modificar su valor dentro de la función. En este caso, 'c1' es una variable de tipo 'char', y '&c1' es del tipo puntero a caracter o 'char*', que es lo que ve la función. Un saludo. |