我在类中有一个数据成员,它是一个指针。另外,我有一个setter函数来动态分配这个指针,比如说,为了动态数组的目的。在设置新值之前,我需要删除此指针以避免内存泄漏。我想知道如何检查此指针是否已初始化,以便在未初始化时,我不需要在设置新值之前删除指针的内存。
答案 0 :(得分:4)
您有两种选择。首先,您可以手动完成所有操作并在构造函数中将其设置为nullptr
。然后在分配新内存之前,您可以检查它是否为nullptr
,如果不是,则将其删除。我推荐的是使用智能指针,如std::unique_ptr
。每次需要将其设置为新指针时,可以在其上调用reset
,从不担心内存泄漏。它将确保删除以前分配的内存(如果有)。