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);}}