使用new分配存储空间后必须用delete释放吗,为什么? 实践测试了一下用new后无论用不用delete进行释放程序都可运行,
时间: 2023-02-11 11:12:39 浏览: 125
14-动态申请和释放存储空间-自己使用的C语言教程PPT-适合老师备课或者自学.pptx
是的,在使用 new 分配存储空间后,必须使用 delete 释放。这是因为 new 操作会在堆上分配内存,而不是在栈上。如果不使用 delete 释放内存,可能会导致内存泄漏。即程序运行结束后,内存仍然被程序占用,导致系统资源浪费。
然而,在你实际测试中没有发现错误是因为编译器可能会在程序结束时自动释放未释放的内存,但这不是可靠的做法,因为它可能在其他系统中不会有这样的情况。
阅读全文