Punteros inseguros en Mojo
alloc devuelve memoria cruda que indexas directo y que tienes que liberar tú.
from std.memory import alloc, memset_zero
def main():
var block = alloc[Int32](4)
memset_zero(block, 4)
print(block[0], block[3])
for i in range(4):
block[i] = Int32(i * i)
print(block.load(2))
block.store(3, Int32(100))
print(block[3])
block.free()
Cómo funciona
alloc[Int32](4)reserva cuatro ranuras y devuelve unUnsafePointer.memset_zerolas limpia; indexar,loadystoreleen y escriben.block.free()libera el bloque — nada más lo hará.
Palabras clave y builtins usados aquí
Int32defforprintrangevar
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 251
- Tokens
- 82
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 76 segundos.
Paso 1 de 4 en Memoria; paso 17 de 22 en Parámetros y SIMD.