gpt4 book ai didi

c++ - 编译器代码生成错误或内存损坏?

转载 作者:行者123 更新时间:2023-11-30 20:55:23 29 4
gpt4 key购买 nike

我正在使用C我的 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)处休息时,我可以看到有 count 等于 20qDebug()还打印 ItemCount: 20 。然后,一旦进入循环,无论我将断点放在哪里,都不会再遇到断点,并且它会无限打印 itemsList->items[i] 的值。 。我以前从未听说过这样的问题,有人知道吗?在调试和 Release模式下都会发生。

最佳答案

逻辑错误。试试这个:

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

关于c++ - 编译器代码生成错误或内存损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com