首页 > 解决方案 > 如何在 Visual Studio 2019 C++ 中修复未解决的异常

问题描述

我知道我每天都发布了 3 天,但我仍然是这方面的新手,可能需要帮助。我遇到了一个问题,每当我调试某些东西时,我都会遇到未解决的异常。代码真的很长,但我确实有它所属的类。如果有人可以帮助我,我将不胜感激。

这就是问题不断出现的地方:
这是问题不断出现的地方

如果您需要更好的视图,我将添加以下代码:

void Inventory::initialize(const int from)
{
    for (size_t i = from; i < cap, i++;)
    {
        this->itemArr[i] = nullptr;
    }
}

问题在于它具有“nullptr”的行

这是它附加到的代码:

class Inventory
{
private:
    int cap;
    int nrOfItems;
    Item **itemArr;
    void expand();
    void initialize(const int from);

public:
    Inventory();
    ~Inventory();
    void addItem(const Item &item);
    void removeItem(int index);
    inline void debugPrint() const    
    {
        for (size_t i = 0; i < this->nrOfItems; i++)
        {
            std::cout << this->itemArr[i]->debugPrint() << std::endl;
        }
    }

};

这是整个 Inventory.cpp 页面:

Inventory::Inventory()
{
    this->cap = 10;
    this->nrOfItems = 0;
    this->itemArr = new Item* [cap];
}


Inventory::~Inventory()
{
    for (size_t i = 0; i < this->nrOfItems; i++)
    {
        delete this->itemArr[i];
    }
    delete[] itemArr;
}

void Inventory::expand()
{
    this->cap *= 2;

    Item **tempArr = new Item*[this->cap];



    for (size_t i = 0; i < this->nrOfItems, i++;)
    {
        tempArr[i] = new Item(*this->itemArr[i]);
    }

    for (size_t i = 0; i < this->nrOfItems, i++;)
    {
         delete this->itemArr[i];
    }
    delete[] this->itemArr;


    this->itemArr = tempArr;

    this->initialize(this->nrOfItems);
}

void Inventory::initialize(const int from)
{
    for (size_t i = from; i < cap, i++;)
    {
        this->itemArr[i] = nullptr;
    }
}

void Inventory::addItem(const Item& item)
{
    if (this->nrOfItems >= this->cap)
    {
        expand();
    }

    this->itemArr[this->nrOfItems++] = new Item(item);
}

void Inventory::removeItem(int index)
{

}

我希望这可以清除其他任何东西。

标签: c++visual-studio-2019

解决方案


推荐阅读