c++boost迭代器抛出断言,程序终止
c++ boost iterator throwing assert and programme terminates
我在这一行得到以下错误:
const short pcmSample = *reinterpret_cast<const short*>(*(buffer->index));
CCD_ 1是类别CCD_ 2的对象。
在这里,我试图将一个字节数组转换为short。代码引发此运行时错误并终止。
class accumlator : public boost::circular_buffer<char>
{
public:
boost::circular_buffer<char>::iterator index;
};
我已经将迭代器初始化为指向缓冲区的开始
并且CCD_ 3是循环缓冲器的迭代器。
boost::cb_details::迭代器::引用boost::cb_details::iterator::operator*()const[withBuff=提升::圆形缓冲区,特性=boost::cb_details::noncast_traits>,boost::cb_details::迭代器::reference=char&]:断言`m_it!="0"失败。
我甚至已经跟踪到文件boost/cycle_buffer/detail.hpp
assert条件检查迭代器是否指向end。如果它指向结束,则抛出断言。
提前谢谢。
似乎没有为值分配索引。运算符*正在进行运行时检查,以确保它指向有效(非0)值。
相关文章:
- 声明一个变量,该变量在 c++ 或 c 中具有值,当程序终止时不会被销毁
- 程序终止时调用函数
- 当主终端关闭时,程序终止
- 程序终止,状态为 -1073741510 在 for 循环的中间,将输入分配给二维数组
- 条件运算符不允许程序终止
- 尝试对对象数组进行排序时程序终止
- 程序终止索引外部
- 程序终止,而不是继续整数输入验证循环
- 程序终止时堆栈损坏?
- 如何使用unique_ptr声明调用构造函数并处理程序终止信号
- 使用 ASSERT_DEATH 时,有没有办法在应用程序终止后自动继续执行所有测试
- C++输入超过 11 个整数时程序终止
- 程序终止:使用向量集的向量
- 我该如何验证给定类的每个实例都被应用程序终止所破坏
- 程序终止时,仪器不会捕获未删除对象
- C程序终止
- 正确关闭应用程序:终止程序的替代方案
- 程序终止C++时访问冲突
- 我需要循环这个,并在给出字符串 -1 时让程序终止
- 绑定错误 98 "Address in use"应用程序终止后仍然存在