VALGRIND:大小为8的读取无效
VALGRIND: invalid read of size 8
我在valgrind、方面有问题
我创建了这个类:
class shop {
private:
vector<vector<string> > products_;
public:
shop(string ProductFile);
FindMinPrice(string product);
}
//method in the cpp file
vector<string> shop::FindMinPrice(string product){
string ProductName=(string)products_[0][0];
}
我没有写完整的代码,但它与GCC编译器配合得很好。当我运行valgrind检查时,它显示:大小为8的无效读取在eclipse中,它会将我发送到ProductName行。
这个设计出了什么问题?以及如何使GCC编译和运行但VALGRIND崩溃?
谢谢。
向量中的products_
向量似乎为空,这意味着对元素products_[0][0]
的访问是未定义的行为。
未定义行为的不幸之处在于,您的程序可能看起来可以工作,甚至可能在没有任何可见问题的情况下完成。
- 在c++中使用c样式转换不是一个好的做法
- 您的shop方法不会返回任何值
相关文章:
- 在 valgrind c++ 上读取大小 8 无效
- Valgrind 大小为 8 且地址 0x5b7e520 的读取无效,在大小为 16 的块内为 0 字节 free'd
- 在 c++ 中使用 getter 作为unordered_map会创建大小为 8 的无效读取
- 对唯一 ptr 无效读取的引用向量
- 瓦尔格林德:构造函数中大小为 1 的无效读取
- 将文本文件读取为 const char* 有时有效,有时无效
- 瓦尔格林德在文件*上的读取无效
- (SDL 渲染问题)C++ 引发异常:读取访问冲突.这是无效的
- 无效操作数以二进制读取结构的阵列
- 获取无效或损坏的文件LNK1107:尝试链接 OpenSceneGraph 教程.dll时无法0x378读取
- 如何修复"在大小为 64 的块内读取大小为 8 - 40 字节的无效 free'd"
- Valgrind 抱怨通过指向结构的指针访问结构成员时读取无效
- VALGRIND:大小为8的读取无效
- C++:写入/读取无效/越界数组索引
- 大小为8的读取无效
- 大小8的读取无效,大小8的写入无效(Valgrind)
- Valgrind调试日志:大小为8的读取无效
- 分段故障-大小为8的读取无效
- C++ valgrid 错误:大小为 8、地址 0x8 的读取无效,未堆叠、恶意或(最近)释放?
- 将char*转换为std::string的大小为1的读取无效