Original now becomes void some_function(int size) { char_array fred(size); // do some stuff } If an exception is thrown fred will be destroyed Because it is an automatic variable Its destructor will be called Thus the array will be deleted