Vectors would probably be easier especially since they can increase and decrease in size if needed. I noticed the if block as well and its from my understanding that it will only stay in that scope (until the closing brace).
The variable machineA stores the address of the memory you've allocated. Since you declare that variable inside your if block, then yes, it will only be in scope inside that block. The scoping rules for pointers are the same as for any other type of variable.
Note that, every time you while loop that starts on line 29 iterates, it checks the type, and if the type is "100A", you create an entirely new array at line 35, throwing away the previous value of machineA and storing a new one in its place. Is this really what you wanted to do?
Also, you're using a variable numOfMachinesA in a couple of loops. Nowhere do you even define that variable, let alone assign it any value.
EDIT: As kingkush says, you're almost always better off using std::vector, than C-style arrays.