Some newbish C++ questions

I'm just looking for some direction. I have no problem researching the answers, but don't really know what to look for or where to start.
1.) What is the standard method for dynamically allocating memory. For example, if I don't know how much memory will be needed for a string (Do I just cap it somewhere and assume that to be the max?), or if I don't know how many players, how do I dynamically add another object, and track it? Do I ALWAYS pre-allocate the maximum amount, or is there a way I can deal with the unknown?
2.) What about stuff that is only around some of the time? For example, I've created a demo of some balls bouncing around the screen. I know upon compile time that I want 100 balls bouncing. I do a for-loop through an array, and call the move() method on each one. BUT, what if those balls aren't going to exist until 20 minutes into the game... I shouldn't be calling a for loop, right? Is there some sort of convention regarding 'registering' created objects with a 'master' controller object of some sort? Or what if I want a custom SIP? I don't want it waiting for input constantly... but only when applicable.
3.) Finally, what is a standard way to accept input from a user (character/integer wise)? If I want to create a custom SIP (For a full screen app), I think I need to know how to GET that info from them... I'm guessing this is actually directly related to the SIP object though.
Thanks tons!
1.) What is the standard method for dynamically allocating memory. For example, if I don't know how much memory will be needed for a string (Do I just cap it somewhere and assume that to be the max?), or if I don't know how many players, how do I dynamically add another object, and track it? Do I ALWAYS pre-allocate the maximum amount, or is there a way I can deal with the unknown?
2.) What about stuff that is only around some of the time? For example, I've created a demo of some balls bouncing around the screen. I know upon compile time that I want 100 balls bouncing. I do a for-loop through an array, and call the move() method on each one. BUT, what if those balls aren't going to exist until 20 minutes into the game... I shouldn't be calling a for loop, right? Is there some sort of convention regarding 'registering' created objects with a 'master' controller object of some sort? Or what if I want a custom SIP? I don't want it waiting for input constantly... but only when applicable.
3.) Finally, what is a standard way to accept input from a user (character/integer wise)? If I want to create a custom SIP (For a full screen app), I think I need to know how to GET that info from them... I'm guessing this is actually directly related to the SIP object though.
Thanks tons!
