0Pricing
Zig Academy · Lección

alloc, free, create, destroy

Las operaciones fundamentales del allocator.

alloc, free, create, destroy es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.

Cuatro operaciones fundamentales

Un asignador le ofrece cuatro llamadas clave: alloc y free para varios elementos, y create y destroy para un único valor.

alloc devuelve un slice

Use alloc para solicitar una secuencia de elementos. Indique el tipo de elemento y una cantidad, y recibirá un slice con ese número de elementos.

const buf = try a.alloc(u8, 64);

alloc puede fallar

Como el montón puede quedarse sin espacio, alloc devuelve una unión de errores. La palabra clave try gestiona correctamente el caso OutOfMemory.

const list = try a.alloc(i32, 10);

free lo devuelve

Cuando termine, llame a free con el slice exacto que obtuvo. Si lo olvida, GeneralPurposeAllocator informará de una fuga.

a.free(buf);

defer free inmediatamente

Una práctica habitual es escribir defer a.free justo después de un alloc correcto, para que la limpieza se ejecute independientemente de cómo termine el ámbito.

const buf = try a.alloc(u8, 64);
defer a.free(buf);

create para un valor

Cuando necesita exactamente un valor en el montón, use create. Recibe un tipo y devuelve un puntero a un único elemento de memoria nueva.

const node = try a.create(Node);

Escriba a través del puntero

create le proporciona un puntero, así que establece el valor a través de él con .* antes de usar los datos a los que apunta.

node.* = Node{ .value = 42 };

destroy del puntero

Libere un valor creado con destroy, pasando el mismo puntero que devolvió create. Es la llamada complementaria de create.

a.destroy(node);

Empareje las operaciones

La regla es estricta: alloc se empareja con free, y create con destroy. Nunca los intercambie ni libere un slice que no haya asignado.

Libere con el mismo asignador

Libere siempre la memoria usando el mismo asignador que la produjo. Mezclar asignadores provoca daños que el compilador no puede detectar.

Los errores omiten el cuerpo de defer

Si alloc falla, no se ha creado memoria, así que no hay nada que liberar. Por eso defer free va después de un alloc correcto. ✅

Comprobación rápida

Empareje cada llamada de asignación con su llamada de liberación correcta.

Repaso

Ha aprendido los pares: alloc/free para los slices y create/destroy para los valores individuales, que siempre se liberan con el mismo allocator. 🎯

Preguntas frecuentes

¿La lección «alloc, free, create, destroy» es gratis?

Sí — el texto completo de «alloc, free, create, destroy» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.

¿Qué aprenderé en «alloc, free, create, destroy»?

Las operaciones fundamentales del allocator. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Zig Academy?

No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «alloc, free, create, destroy»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Zig Academy?

Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué Zig no tiene asignaciones ocultas
  2. La interfaz Allocator
  3. alloc, free, create, destroy
  4. Listas dinámicas con ArrayList
← Volver a Zig Academy