In OpenCL, you cannot pass a struct that contains regular pointer(s). OpenCL 1.x doesn't support it. With OpenCL 2.x, Shared Virtual Memory (SVM) allows this kind of pointer passing however the pointer must be a SVM pointer.
There are several ways to pass the data referred by the pointer. You may create separate memory objects corresponding to the pointers and pass them to kernel as separate arguments. If the pointer refers to a particular element of an array, you can pass the whole array as a single buffer object and store the index of the element in the structure instead of the raw pointer.