程序在运行时需要请求操作系统分配内存以及释放内存,因此,程序员在编写程序时,需要显式(手动)地编写分配和释放内存的代码,或者隐式(自动,由语言保证)地进行内存管理.对于前者,C/C++ 是代表语言,程序员需要手动管理内存:对于后者,垃圾回收器(Garbage collector, GC)是一种常见的选择,诸如 Go/Java 等都提供了 GC. 事实上,C++ 标准库中提供了智能指针等工具,能够解决一部分的内存管理问题.但是由于 C++ 的高自由度,即使在使用智能指针时,仍十分容易编写出会导致内…