我在我的C ++项目中使用struct
库。这是我第一次遇到这样的问题。我在C
库中有typedef struct {
size_t count;
int items[];
} items_list;
这样的内容:
items_list* itemsList = get_item_list_lib(...);
if(itemsList != NULL)
{
qDebug()<<"ItemCount: "<<itemsList->count;
for(int i = 0; i = itemsList->count; i++)
{
qDebug()<<itemsList->items[i];
}
}
然后我这样做:
if(itemsList != NULL)
当我在20
处休息时,我可以看到有等于qDebug()
的数量。 ItemCount: 20
也会打印itemsList->items[i]
。然后一旦它进入循环,无论我放置它们在哪里都没有断点,它无限地打印{{1}}的值。我以前从未听说过这样的问题,有没有人有任何想法?在调试和释放模式下都会发生。
答案 0 :(得分:2)
逻辑错误。试试这个:
items_list* itemsList = get_item_list_lib(...);
if(itemsList != NULL)
{
qDebug()<<"ItemCount: "<<itemsList->count;
for(int i = 0; i < itemsList->count; i++) // NOTE: less than, not equals
{
qDebug()<<itemsList->items[i];
}
}