It works, you can pass `ptr Foo` or even `pointer` to any char *. In your case you should probably use `pointer` or `ptr pointer` or `ptr UncheckArray[pointer]`.
But without the relevant part of the header, I can't say much more. Anyway the proper way to interface `char *` is `pointer`, you can look into the `alloc` and `alloc0` procs and other low-level proc in `system.nim` as reference.
