我在此行收到以下错误:
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/