No entiendo por qué funciona así el pasar un puntero por referencia
Publicado por Valery (1 intervención) el 05/12/2019 01:50:01
Hola a todos, tengo un error conceptual aquí:
Tengo la función
So paso el puntero (es un string) de esa manera a la función imprime basura
Pero si paso el puntero de la siguiente manera
Entonces si imprime el mensaje correcto.
La función Mensaje_Ent( ) es como sigue:
Se que de la segunda manera le estoy pasando a la función Mensaje_Ent( ) la dirección del primer elemento del string pero llegué a pensar que si pasaba el puntero de la primera manera simplemente estaba copiando el string de una función a otra más interna.
¿Por qué sucede lo de la impresión de basura?, lo único que se me ocurre es que la función interna está tomando el contenido del puntero como una dirección pero no logro encontrar referencia alguna a ello.
Gracias de antemano por la ayuda brindada.
Tengo la función
1
2
3
4
void Escribe_DCRAM4b(char *fra, char anim)
{
Mensaje_Ent(*fra);
}
So paso el puntero (es un string) de esa manera a la función
1
Mensaje_Ent( )
Pero si paso el puntero de la siguiente manera
1
2
3
4
void Escribe_DCRAM4b(char *fra, char anim)
{
Mensaje_Ent(fra);
}
Entonces si imprime el mensaje correcto.
La función Mensaje_Ent( ) es como sigue:
1
2
3
4
5
6
7
8
void Mensaje_Ent(char *mensaje)
{
while (*mensaje)
{
Envia_Com_Ram4b(*(mensaje++));
retardo_us(40);
}
}
Se que de la segunda manera le estoy pasando a la función Mensaje_Ent( ) la dirección del primer elemento del string pero llegué a pensar que si pasaba el puntero de la primera manera simplemente estaba copiando el string de una función a otra más interna.
¿Por qué sucede lo de la impresión de basura?, lo único que se me ocurre es que la función interna está tomando el contenido del puntero como una dirección pero no logro encontrar referencia alguna a ello.
Gracias de antemano por la ayuda brindada.
Valora esta pregunta


0