当前位置: 代码迷 >> 综合 >> ERROR:ASSERT: “uint(i) < uint(size())“
  详细解决方案

ERROR:ASSERT: “uint(i) < uint(size())“

热度:79   发布时间:2023-11-16 21:40:47.0

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);}}
  相关解决方案