ft_memcpy.c

Esta función permite copiar una cantidad de bytes de la cadena de orígen a la de destino. En este caso no se contempla el problema de superposición, ya que lo veremos en el próximo ejercicio.

Enunciado

memcpy(3)

NOMBRE
    memcpy --> copia una área de memória
CABECERA
    void *memcpy(void *dst, const void *src, size_t n);
DESCRIPCIÓN
    Copia `n` bytes de la cadena de orígen `src` hacia la de destino `dst`, sin tener en cuenta si se producen errores por copiar valores modificados en caso de ubicar una región común de memória.
DEVOLUCIÓN
    Devuelve el valor original de `dst`.

Esta función, tiene una gran semejanza con strcpy, salvo que en este caso se acepta 'void *' como parámetro de entrada, por tanto podemos extrapolar el puntero recibido al tipo que nosotros queramos.

Planteamiento

ft_memcpy.c
#include "libft.h"

void *ft_memcpy(void *dst, const void *src, size_t n) {
    /* definimos un contador y lo inicializamos a su valor predeterminado */
    /* definimos como variable auxiliar, un puntero para trabajar con `dst`, puesto que al ser void no tiene tipaje. Inicializamos el valor de nuestra variable auxiliar a `(unsigned char *)`.
     * definimos como variable auxiliar un puntero para trabajar con `src`. Inicializamos el valor de nuestra variable auxiliar a `(unsigned char *) */
    if (/* destino es igual que origen */)
        return (dst);
    while(/* el contador sea mayor que ´0´ */) {
        /* establecemos el valor de la posición actual de `dst` al carácter actual de `src` */
        /* preparamos la siguiente iteración */
    }
    return (dst);
}

Solución

Recuerda: para entregar tu proyecto, debes poder defenderlo. Por ello, resuelve cada enunciado con la respuesta que te parezca mas entendible a nivel presonal.

J: "No hay respuestas incorrectas, solo puntos de vista distantes".

Solución Base

Última actualización

¿Te fue útil?