and the OS does that because it is an interrupt?
whereas if the program completes (and I don't free memory), the OS won't free it for me? thus leading to a memory leak?
PS. actually thinking about it (should have thought first!), the memory leak occurs while the program is running...