Retaining pointer addresses on creating new structures