Simply because the extra characters that are stored in baby[] after the allocated 10 are not overwriting anything important (at the moment).
Put more variables in and it might overwrite them.
There is nothing to stop your code storing more in the baby[] string than the allocated 10 - the 10 just tells the compiler how many storage units to allocate initially (and permanently - it does not increase that allocated amount if you try to use more in the code). If you do store more than was initially allocated, there is no control over what you might overwrite, or when.