Hi, I don’t know about the cuMemAllocPitch, though I wish I could help. I’d guess that you were right though.
About the pointers, yes, I’d say you can do that. I have done very similar things outside of a kernel. Inside of a kernel, I’ve done something very similar to ptr2 = &ptr1[offset]. This is the same as ptr1 + offset * sizeof(type) AFAIK. It should be, at least.