在 C ++中,什么时候使用“ new ”,什么时候不使用?
在C++中, 关键字用于动态内存分配,它从堆上为对象或数组分配内存,并返回指向它的一个指针。使用 创建的每一个实例都应该用 来释放内存,以避免内存泄漏。是否使用 取决于多个因素,以下是一些指导原则:何时使用长期存储需求: 当你需要在程序的多个部分中保留数据,而这些数据的生命周期超过了它们的创建作用域时,使用 是合适的。例如,你可能在一个函数中创建一个对象,并希望它在函数返回后仍然可用。例子:大型对象或数组: 对于非常大的对象或数组,使用动态内存可以帮助避免栈溢出,因为栈(用于静态/自动分配)通常有大小限制。例子:控制对象的创建和销毁: 使用 可以精确控制对象的创建时间和销毁时间。例子:何时不使用局部对象: 当对象的使用仅限于一个函数或作用域时,最好使用栈分配(即自动变量)。这种方式简单且不需要手动管理内存。例子:智能指针: 在现代C++中,推荐使用智能指针(如 , )来管理动态内存,因为它们可以自动释放所占用的资源,减少内存泄漏的风险。例子:标准容器: 对于数组和类似集合的数据结构,使用标准容器(如 , 等)更为安全和高效,这些容器自动管理内存。例子:总结, 的使用在C++中是必要的,但需要谨慎处理以避免内存泄漏。在现代C++实践中,推荐尽可能使用智能指针和标准容器来简化内存管理。