I feel a need to defend myself for some reason.
In no way did I advocate mixing new with free. I merely stated that a particular compiler, in its particular version, might implement them the same way. And only then you pay no penalty for such major mistake.
As for the use of dynamic arrays or other dynamic memory allocations – I see a point in teaching those things. If for no other reason than to later point: and now see how much better STL containers are! May be it will be easier to demonstrate the benefits of proper design if you can show potential danger of doing otherwise?