Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dano1952 en 2 Junio 2018, 01:17 am



Título: Duda con punteros a char en función [lenguaje C]
Publicado por: Dano1952 en 2 Junio 2018, 01:17 am
Hola ¿como están?
En el tutorial con el que estoy re-pasando punteros hay un programa que pongo a continuación:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. char copiar(char*, const char*);
  6.  
  7. int main(void){
  8. char ptrA[80] = "Cadena a usar para el programa de ejemplo";
  9. char ptrB[80];
  10.  
  11. copiar ( ptrB, ptrA );
  12. printf ( "\n %s\n ", ptrB );
  13.  
  14. return EXIT_SUCCESS;
  15. }
  16.  
  17. char copiar ( char *destino, const char *fuente ){
  18.  
  19. while ( *fuente != '\0' ){
  20. *destino++ = *fuente++;
  21. }
  22. *destino = '\0';
  23.  
  24. return *destino;
  25. }

La duda es que la función (en el tutorial) tiene esta línea que yo quite y funciona igual, me podrían decir porque la habrán incluido, ¿tiene alguna ventaja? ,-

Código
  1. char *p = destino;

Código
  1. char copiar ( char *destino, const char *fuente ){
  2. char *p = destino;
  3.  
  4. while ( *fuente != '\0' ){
  5. *p++ = *fuente++;
  6. }
  7. *p = '\0';
  8.  
  9. return *destino;
  10. }

Dano.


Título: Re: Duda con punteros a char en función [lenguaje C]
Publicado por: SrMcLister en 2 Junio 2018, 01:39 am
Buenas Dano.

Lo único que hace esa linea es crear un puntero apuntando al destino.
Es una copia de tu palabra destino simplemente, supongo lo usarían para mostrar como otro puntero apunta a un puntero ya existente, ya que en ambos codigos, el return es de destino.
Un Saludo.


Título: Re: Duda con punteros a char en función [lenguaje C]
Publicado por: Dano1952 en 2 Junio 2018, 02:01 am
Hola, gracias por ocuparte(todo claro), sigo avanzando.-
Saludos.