Your program is dependent on the order of the command line
-E is needed to set the global variable 'E'. But -s will call
which reads E.
This is not a good organization of your code.
I'd suggest moving
MallocAndInitialize out of the loop that
processes the arguments.