typestar

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

  1. realloc devuelve un bloque más grande, posiblemente movido.
  2. Si falla, el bloque viejo se libera para evitar una fuga.
  3. Las casillas nuevas se ponen en cero antes de usarse.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →