typestar

calloc y la memoria en cero en C

calloc recibe un conteo y un tamaño, y entrega memoria ya puesta en cero.

#include <stdlib.h>

int table_is_clean(size_t n) {
    int *table = calloc(n, sizeof(int));
    if (table == NULL) {
        return 0;
    }
    int clean = 1;
    for (size_t i = 0; i < n; i++) {
        if (table[i] != 0) {
            clean = 0;
        }
    }
    free(table);
    return clean;
}

Cómo funciona

  1. Verifica el desbordamiento de la multiplicación, cosa que malloc no hace.
  2. El bloque empieza como puros bytes cero.
  3. free es igual en ambos casos.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
234
Tokens
83
Ritmo de tres estrellas
95 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →