What is unsafe code (code using pointers) in c#?