类私有变量损坏



我有一个 std::vector 的某种形式的

class A{
 public:
 A():i(someNumber){}
 void useI() const{
   //do something with i
 }
 // No destructor defined
 private:
  int i;
};

我的代码正在循环遍历每个数据点,并对数组中的每个元素调用useI()。经过几百次迭代,变量i损坏了,我不知道为什么。这种情况是可以复制的。我知道这里没有太多细节,但非常感谢任何关于检查内容的建议。

最有可能导致这种情况的是过度索引数组访问到未指向正确位置的指针。 现在,找到这种情况发生的位置并非易事,但像valgrind这样的工具可以提供帮助。

如果使用 C 样式字符串,如果未正确终止或保存缓冲区的大小应用不正确,也很容易导致字符串过度索引

另一个原因可能是双重删除/没有指针,这也损坏了内存

相关内容

  • 没有找到相关文章

最新更新