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

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

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

最佳答案

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

关于c++ - 如何检查C++类中作为数据成员的指针是否已经初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40225497/

相关文章:

c++ - 如何从类中的另一个函数访问变量

c++ - 语言和地区枚举

c++ - (->) 箭头运算符和 (.) 点运算符,类指针

javascript - 如果 JSON 对象的属性具有诸如 option1、option2 之类的名称,那么访问 JSON 对象的属性的更好方法是什么

javascript - 检索数组JS中的所有对象

c++ - 尝试在C++主函数内更改全局变量值时出现编译错误

在 C 中将 void 指针转换为 uint64_t 数组

c - 具有指针转换的局部变量

delphi - 我可以调整 Delphi 数组的大小而不丢失其以前的内容吗?

c++ - c/c++中perl的hash变量替换