如何检查作为C ++类中的数据成员的指针是否已初始化?

时间:2016-10-24 18:53:01

标签: c++ pointers dynamic-arrays dynamic-allocation

我在类中有一个数据成员,它是一个指针。另外,我有一个setter函数来动态分配这个指针,比如说,为了动态数组的目的。在设置新值之前,我需要删除此指针以避免内存泄漏。我想知道如何检查此指针是否已初始化,以便在未初始化时,我不需要在设置新值之前删除指针的内存。

1 个答案:

答案 0 :(得分:4)

您有两种选择。首先,您可以手动完成所有操作并在构造函数中将其设置为nullptr。然后在分配新内存之前,您可以检查它是否为nullptr,如果不是,则将其删除。我推荐的是使用智能指针,如std::unique_ptr。每次需要将其设置为新指针时,可以在其上调用reset,从不担心内存泄漏。它将确保删除以前分配的内存(如果有)。