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[] this->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)
{
}
Above is my code from Inventory.cpp and the issue is that I keep getting an Unhandled Exception from the line that has:
this->itemArr[i] = nullptr;
I have no idea where I'm messing up in the code. Below I am posting from Inventory.h:
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;
        }
    }
};
This is where itemArr should be housed but for some reason, it is not pulling. I am new to coding so I don't know all of the tips and tricks involved with it.
 
     
    