gpt4 book ai didi

c++ - 指针 vector 的 Push_back 方法导致 C++ 崩溃

转载 作者:行者123 更新时间:2023-12-02 17:30:21 24 4
gpt4 key购买 nike

我正在尝试在 C++ 中添加指向 vector 的指针。因此:

          Puzzle * puzzleStart = new Puzzle();

std::vector<Puzzle*> OPEN;

OPEN.push_back(puzzleStart);

第一次压入指针时,没有问题。第二次,它会导致崩溃。我猜问题是 vector 的大小,但我不明白为什么。还有什么更多的事情吗?

更新:你是对的,问题出在其他地方,我刚刚意识到它是在我释放指针 vector 时发生的。还有另一个问题,如果 vector 包含重复的指针,我认为。

   if (OPEN.size()!=0){
for (int i = 0; i < OPEN.size(); ++i) {
delete OPEN[i]; // Calls ~object and deallocates *tmp[i]
}
OPEN.clear();
}

我如何确保它不会尝试删除所有已删除的指针?

最佳答案

你是对的,问题出在其他地方,我刚刚意识到它是在我释放指针 vector 时发生的。还有另一个问题,如果 vector 包含重复的指针,我认为。

       if (OPEN.size()!=0){
for (int i = 0; i < OPEN.size(); ++i) {
delete OPEN[i]; // Calls ~object and deallocates *tmp[i]
}
OPEN.clear();
}

我如何确保它不会尝试删除所有已删除的指针?

关于c++ - 指针 vector 的 Push_back 方法导致 C++ 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442600/

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