gpt4 book ai didi

c++ - 类私有(private)变量损坏

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:32 26 4
gpt4 key购买 nike

我有一个某种形式的 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 风格的字符串也很容易导致过度索引字符串

另一个原因可能是双重删除/释放也会破坏内存的指针

关于c++ - 类私有(private)变量损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037665/

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