Punteros a varios elementos [*]T
Apunte a una secuencia de elementos.
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. 🎯
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
- Punteros a un solo elemento con *T
- Desreferenciar con ptr.*
- Punteros a varios elementos [*]T
- Punteros const y alineación