A very simple code with a weird issue. The code goes through fine but I can't seem to get the desired output. My getStock() and getQuantity() functions don't seem to work. When I debug the code, it says 'error reading the memory'. When the execution reaches s.dispP() the code crashes unexpectedly. Can't seem to find a solution for it. Kindly help. Thank you.
    #include<iostream>
    #include<conio.h>
    using namespace std;
    class Sale
    {
        class SaleItem
        {
            int stock, quantity;
        public:
            SaleItem(int pstock, int pquantity) : stock(pstock), quantity(pquantity)
            {
            }
            int getStock()
            {
                return stock;
            }
            int getQuantity()
            {
                return quantity;
            }
        };
        int sstock, squantity;
    public:
        SaleItem *si;
        void addP()
        {
            cout << "Enter Stock: ";
            cin >> sstock;
            cout << "Enter Quantity: ";
            cin >> squantity;
            SaleItem *si = new SaleItem(sstock, squantity);
        }
        void dispP()
        {
            cout << si->getStock() << endl << si->getQuantity();
        }
    };
    void main()
    {
        Sale s;
        s.addP();
        s.dispP();
        _getch();
    }
 
     
     
     
     
     
     
    