let arr = [1,2,3,4,5]
    let a = unsafeAddr(arr) # <------- Emphasis on unsafe
    a[2] = 100
    echo arr   # outputs [1, 2, 100, 4, 5]
    
    
    Run

When you deal with raw memory and use `unsafeAddr` it's a bit unfair to 
complain that it compiles. `unsafeAddr` is an escape hatch, a contract that Nim 
defers all responsability of sfety to you because you know better. If you use 
`addr` with `let` Nim will not compile.

Reply via email to