Duda con punteros a char en función [lenguaje C]

Iniciado por Dano1952, 2 Junio 2018, 01:17 AM

0 Miembros y 1 Visitante están viendo este tema.

Dano1952

Hola ¿como están?
En el tutorial con el que estoy re-pasando punteros hay un programa que pongo a continuación:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char copiar(char*, const char*);

int main(void){
char ptrA[80] = "Cadena a usar para el programa de ejemplo";
char ptrB[80];

copiar ( ptrB, ptrA );
printf ( "\n %s\n ", ptrB );

return EXIT_SUCCESS;
}

char copiar ( char *destino, const char *fuente ){

while ( *fuente != '\0' ){
*destino++ = *fuente++;
}
*destino = '\0';

return *destino;
}


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? ,-

char *p = destino;

char copiar ( char *destino, const char *fuente ){
char *p = destino;

while ( *fuente != '\0' ){
*p++ = *fuente++;
}
*p = '\0';

return *destino;
}


Dano.

SrMcLister

#1
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.
Código (cpp) [Seleccionar]

return((u.areHappy() && u.knowIt()) ? u.clapYourHands() : u.goFuckYourself());

Dano1952

Hola, gracias por ocuparte(todo claro), sigo avanzando.-
Saludos.