Zig Academy · Lección

Punteros a varios elementos [*]T

Apunte a una secuencia de elementos.

Lección 3 de 413 pasos

Punteros a varios elementos [*]T 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.

Apuntar a una secuencia

A veces un puntero no contiene la dirección de un solo valor, sino del inicio de una secuencia de valores dispuestos en la memoria. 🧱

El tipo [*]T

Un puntero a varios elementos se escribe [*]T. El asterisco dentro de los corchetes significa que apunta a un número desconocido de valores T consecutivos.

var run: [*]u8 = undefined;

No incluye una longitud

A diferencia de un slice, un puntero a varios elementos no contiene ninguna longitud. Solo usted debe saber cuántos elementos es seguro tocar.

Indexar como un arreglo

Puede indexar un puntero a varios elementos con corchetes, de modo que run[2] accede al tercer elemento avanzando en la memoria.

const third = run[2];

Aritmética de punteros

Sumar a un puntero a varios elementos lo desplaza en elementos completos, por lo que run + 1 apunta a un T situado más adelante, no a un byte.

const next = run + 1;

Uno frente a varios

Un *T apunta exactamente a un valor y no se puede indexar; un [*]T apunta a varios y admite indexación y aritmética.

De dónde proceden

Los punteros a varios elementos aparecen a menudo al comunicarse con C, que pasa un puntero sin más a un búfer cuya longitud se controla por separado.

No se comprueban los límites

Como se desconoce la longitud, la indexación de un puntero a varios elementos no comprueba los límites. Leer demasiado lejos provoca un comportamiento indefinido.

Prefiera los slices

Cuando controle el código, un slice []T es más seguro porque incluye la longitud. Recurra a [*]T principalmente en los límites con C.

De puntero a slice

Cuando conozca la cantidad, añada una longitud con ptr[0..n] para convertir un puntero a varios elementos en un slice seguro con comprobación de límites.

const view = run[0..n];

Existen variantes con centinela

Zig también tiene formas terminadas en centinela, como [*:0]u8, un puntero cuya secuencia termina en un valor conocido, como un byte cero.

var cstr: [*:0]const u8 = "hi";

Comprobación rápida

Compare un slice []T con un puntero a varios elementos [*]T. ¿Qué le falta al puntero a varios elementos?

Resumen

Un puntero a varios elementos [*]T apunta a una secuencia de valores, admite indexación y aritmética, no tiene longitud y conviene convertirlo en un slice cuando sea posible. 🎯

Gratis para empezar

Aprende Zig con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Punteros a varios elementos [*]T» es gratis?

Sí — el texto completo de «Punteros a varios elementos [*]T» 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 «Punteros a varios elementos [*]T»?

Apunte a una secuencia de elementos. 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 «Punteros a varios elementos [*]T»?

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. Punteros a un solo elemento con *T
  2. Desreferenciar con ptr.*
  3. Punteros a varios elementos [*]T
  4. Punteros const y alineación
← Volver a Zig Academy