Why cast to `*C.char` if you're going to cast it back to `unsafe.Pointer` again?