When trying to free either the same malloced heap twice or the unallocated heap, you get the fatal errors "double free or corruption(fasttop)" and "invalid pointer" respectively, hence the running program aborts immediately.
Although doing so is logically improper, it seems to me that no fatal harm is actually done to the running program. Why is it forced to abort immediately?