C++基础,堆区为什么能被返回数据

img


我的理解是:堆区建立一个new,栈区接受地址和数据,返回栈区地址,而main函数里,用指针接受栈区地址,但栈区不是被释放了吗,为什么后面还能接受地址,堆区虽然给了地址给栈区,但栈区不是被释放了吗

再main函数中,p是堆地址,并不是栈地址。
堆地址如果不手动释放(调用delete释放),只会再程序终止时由系统回收,所以fun函数返回p时,p这块堆内存并没有释放。