ERROR:ASSERT: “uint(i) < uint(size())”
1. 源码
QByteArray message[1024];
uint16_t DATA[512];
/*
* 在 message 使用之前我调用了 message->clear(); ,并重新载入了值。
*/
for(int i = 0; i < 1024; i ++)
{
char hNum = message->at(i),lNum = message->at(i+1); // 此处出错
DATA[i/2] = hNum + (lNum<<8);
}
2. 报错
ERROR:ASSERT: “uint(i) < uint(size())” from…
3. 释义
索引超出了数组的大小。即 message->at(i),i 不在0-1023范围内。
4. 更改
QByteArray message[1024];
uint16_t DATA[512];
if(message->size() > 1024) // 加判断即可
{
for(int i = 0; i < 1024; i ++)
{
char hNum = message->at(i),lNum = message->at(i+1);
DATA[i/2] = hNum + (lNum<<8);
}
}