c++ 如果我在创建指向堆的指针后不调用 'delete' 运算符怎么办?

c++ what if I don't call 'delete' operator after creating a pointer to the heap?

我是 C++ 的新手,我刚刚了解到在创建指向堆内存的 new 指针时,您必须手动 delete 它,例如:

int *a = new int;
...
delete a;

但是,如果我不 delete 怎么办?它是否仍会永远占用 space 堆(字面意思上不是永远,但你明白了)。我已经创建了几个项目,我只是在测试和摆弄它,在某些情况下我没有 delete 之后的指针。那么,它是否会被 Visual Studio(我正在使用的)自动 delete?或者,现在是不是太晚了,我对此无能为力(以某种方式释放 space)?另外,我应该担心吗(因为我担心)?

程序终止后,内存被操作系统释放。今年是 2020 年,因此您拥有的那些测试应用程序没有任何危害,因为所有现代操作系统都可以处理它。

就是说,虽然程序是 运行,但内存仍处于分配状态。这很糟糕,因为您不再使用该内存,这是一种资源浪费。