首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >损坏大小与prev大小

问损坏大小与prev大小
EN

Stack Overflow用户
提问于 2022-11-15 00:30:17
回答 1查看 94关注 0票数 0

我有一个A,B和C类(下面的代码片段说明了这个设计)。

代码语言:javascript
复制
class A{
 public:
     A() = default;
     // some virtual functions
     virtual ~A() = default;

 private:
     // variables; no pointers
}

class B: public A{
  public:
  ~B() = default;

  protected:
     //variables
}

class C: public A{

protected:
   std::vector<std::unique_ptr<A>> cs;
   // other variables

public:
 ~ C() = default;

}

在代码中,我有一个vector<std::unique_ptr<A>>,我将元素推上并应用调整大小。问题往往是,当我运行程序时,我会继续得到下面的错误。

代码语言:javascript
复制
corrupted size vs. prev_size
Signal: SIGABRT (Aborted)

代码库相当大,因此很难找到一个最小的运行示例。但是,调试始终突出显示析构函数代码行。我的问题是否暗示了我应该在代码中重复检查。

EN

回答 1

Stack Overflow用户

发布于 2022-11-15 01:03:31

我只是,昨天遇到了这个问题,free从破坏者那里扔了出来。这与析构函数无关,它是一种越界访问,在这种情况下,索引变量看起来不可能超出界限。

使用.at()替换任何方括号访问,并查看是否有超出界限的异常。然后你就可以去解决这个问题了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74439413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档