realloc en C
Redimensionar una reserva del heap para hacer crecer un arreglo.
#include <stdlib.h>
int *grow(int *items, int old_n, int new_n) {
int *bigger = realloc(items, new_n * sizeof(int));
if (bigger == NULL) {
free(items);
return NULL;
}
for (int i = old_n; i < new_n; i++)
bigger[i] = 0;
return bigger;
}
Cómo funciona
reallocdevuelve un bloque más grande, posiblemente movido.- Si falla, el bloque viejo se libera para evitar una fuga.
- Las casillas nuevas se ponen en cero antes de usarse.
Palabras clave y builtins usados aquí
NULLforifintreturnsizeof
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 235
- Tokens
- 77
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 49 segundos.
Paso 3 de 5 en Memoria dinámica; paso 12 de 25 en Punteros y memoria.