I'm making a 2d rpg game in c++ with sfml, and right now I am experimenting with game states. Right now I am using a State* state[] that will store different states (for different areas) as they are found (unless they are menus in which they will already be there). That way if I leave an area and then come back to it later (don't worry how I do this part, it works).
My question is this: is there a more efficient way of managing states for this type of game? At some point a State* array will just become to big and inefficient.