gpt4 book ai didi

c++ - 如何检查类中共享指针的有效性?

转载 作者:行者123 更新时间:2023-11-30 03:20:39 24 4
gpt4 key购买 nike

为什么检查根的有效性会导致段错误,检查指针是否为空的正确方法是什么?

class Node {  
public:
int key, value;
std::shared_ptr<Node> right, left;
Node(int key, int value) : key(key), value(value) {
right = nullptr;
left = nullptr;
}
};

class BST {
private:
std::shared_ptr<Node> root = nullptr;
public:
void addElement(int key, int value) {
if (root) {
}
}
};

int main() {
std::shared_ptr<BST> bst;
bst->addElement(10, 10);
}

最佳答案

您忘记在 main() 中创建 BST 类的实例,

bst->addElement(10, 10);

在空指针上调用 addElement,这就是段错误的来源。而是做

auto bst = std::make_shared<BST>();
bst->addElement(10, 10);

关于c++ - 如何检查类中共享指针的有效性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52729677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com