Basic use of opaque pointers