Aritmética de punteros en Mojo
Sumarle a un puntero lo mueve por elementos completos, nunca por bytes.
from std.memory import alloc
def main():
var block = alloc[Int](6)
for i in range(6):
block[i] = i * 10
var tail = block + 3
print(tail[0], tail[1], tail[2])
var back = tail - 2
print(back[0])
block.free()
Cómo funciona
- El bloque se llena con asignación por índice, sin más.
block + 3apunta al cuarto elemento y desde ahí sigue indexando.- Restar retrocede, y solo se libera el puntero original.
Palabras clave y builtins usados aquí
Intdefforprintrangevar
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 207
- Tokens
- 69
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 64 segundos.
Paso 2 de 4 en Memoria; paso 18 de 22 en Parámetros y SIMD.