Some places in code I am using such design that an object pointer is received from ListArray_Add function. Which is a nice thing itself because that means continuous dynamic memory. But when the memory holding the internal data is moved somewhere else, all pointers exposed to the user becomes dangling pointers.