You should have a look at the C_LINK structure. That's a linked list. Not an array. As a general rule you should stick to JustSid's advice: "Don't copy data around that you don't own".
exile, maybe you can desribe the thing you want to do in more detail. How does using pan_setbutton make it necessary to change the bitmap but not the pointer?