So there is a chance that there is space available already even without "allocating memory"?
No, the "luck" refers to you not crashing. That space doesn't belong to your char array ... it could well belong to another variable. You could be unwittingly changing the value of that variable. It's like you taking up multiple seats on the train - hard to stop, but decidedly unpopular.
But let's say i'm trying to allocate memory[200000]. (I'm guessing that the process of allocation is "one spot at a time"). While this is happening I catch an exception, and maybe some of the length was already allocated before the exception.
Should I delete the pointer here, or free it somehow?
I'm guessing that the process of allocation is "one spot at a time"
No, you either get it in its entirety or you get nothing. It's just a starting position and a size for contiguous memory.
If the exception referred to unavailable memory then nothing will have been set.
If the exception referred to something else then the memory will already have been allocated to you.