我在此行收到以下错误:

const short pcmSample = *reinterpret_cast<const short*>(*(buffer->index));


buffer是类accumlator的对象。

在这里,我试图将字节数组转换为短裤。该代码引发此运行时错误并终止。

class accumlator : public boost::circular_buffer<char>
{
  public:
    boost::circular_buffer<char>::iterator index;
};


我已经初始化了迭代器以指向缓冲区的开始

index是循环缓冲区的迭代器。


  boost :: cb_details :: iterator :: reference
  boost :: cb_details :: iterator :: operator *()const [with
  增益= boost :: circular_buffer,特性=
  boost :: cb_details :: nonconst_traits>,
  boost :: cb_details :: iterator :: reference = char&]:
  断言'm_it!= 0'失败。


我什至跟踪到了文件boost / circular_buffer / detail.hpp

断言条件检查-迭代器是否指向结束。
如果它指向结束,则抛出断言。

提前致谢。

最佳答案

似乎您没有将索引分配给值。操作员*正在执行运行时检查,以确保它指向有效的(非0)值。

关于c++ - C++ Boost Iterator抛出断言,程序终止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9357190/

10-13 08:09
查看更多