typestar

memcpy, memmove, memset en C

Tres operaciones en bloque, y la única regla que separa a las dos primeras.

#include <string.h>

void shift_left(int *values, size_t n) {
    if (n < 2) {
        return;
    }
    memmove(values, values + 1, (n - 1) * sizeof(int));
    values[n - 1] = 0;
}

void clone_into(int *dst, const int *src, size_t n) {
    memcpy(dst, src, n * sizeof(int));
    memset(dst, 0, 0);
}

int same(const void *a, const void *b, size_t n) {
    return memcmp(a, b, n) == 0;
}

Cómo funciona

  1. memcpy exige que las regiones no se solapen.
  2. memmove maneja el solapamiento correctamente, a un costo pequeño.
  3. memset llena bytes, así que solo 0 funciona para tipos que no son char.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
351
Tokens
125
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 79 segundos.

Escribe este fragmento

Paso 5 de 5 en Memoria dinámica; paso 14 de 25 en Punteros y memoria.

← Anterior Siguiente →