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
- Verifica el desbordamiento de la multiplicación, cosa que malloc no hace.
- El bloque empieza como puros bytes cero.
freees igual en ambos casos.
Palabras clave y builtins usados aquí
NULLforifintreturnsize_tsizeof
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.
Paso 2 de 5 en Memoria dinámica; paso 11 de 25 en Punteros y memoria.