Тема: Помилка expression:_CrtIsValidHeapPointer(block)
Я написала код:
#include <iostream>
using namespace std;
class STACK
{
private:
    int* stack;
    int count = 0;
public:
    //конструктор без параметру
    STACK()
    {
        cout << "Enter number of items:";
        cin >> count;
        stack = new int[count];
        for (int i = 0;i < count;i++) {
            cout << "Item["<<i+1<<"]:";
            cin >> stack[i];
        }
        cout << " Constructor is did\n" << endl;
    }
        //конструктор з параметром
    STACK(int count)
    {
        this->count = count;
        stack = new int[this->count];
        for (int i = 0;i < this->count;i++)
        {
            cout << "Item[" << i + 1 << "] :";
            cin >> stack[i];
        }
        cout << " Constructor 2 is did.\n" << endl;
    }
    //деструктор
    ~STACK()
    {
        count = 0;
        delete[]stack;
        cout << " Destructor is did\n"<<this <<endl;
    }
    //функція виводу стеку
    void Print()
    {
        int pos = 0;
        cout << " Stack:" << endl;
        if (count == 0)
            cout << " is empty." << endl;
        for (int i = count - 1;i >= 0;i--)
        {
            cout << " Item[" << pos++ << "]=" << stack[i] << endl;
        }
        cout << endl;
    }
    //перевантажений операція порівняння 
    bool operator>(const STACK& st)
    {
        return this->count > st.count;
    }
    //перевантажена операція додавання елемента
    void operator+(int item)
    {
        int* point = stack;
        stack = new int[count+1];
        count++;
        for (int i = 0;i < count;i++)
            stack[i] = point[i];
        stack[count-1] = item;
        delete[]point;
    }
    //функція сортування стеків
    friend void sort(STACK mas_of_stacks[], STACK& st, int number)
    {
        int hlpr;
        for (int i = 0;i < number;i++)
        {
            hlpr = i;
            if (mas_of_stacks[hlpr] > mas_of_stacks[i + 1])
            {
                hlpr = i + 1;
                st = mas_of_stacks[hlpr];
                mas_of_stacks[hlpr] = mas_of_stacks[i];
                mas_of_stacks[i] = st;
            }
        }
    }
    //функція об'єднання елементів стеків
    friend int* Gathering(STACK mas_of_stacks[], int size)
    {
            int* arr=0, kst = all_elem_count(mas_of_stacks, size), hlpr = 0;
            arr = new int[kst];
            hlpr = kst;
            for (int i = 0;i < size;i++)
                for (int j = mas_of_stacks[i].count - 1;j >= 0;j--)
                    arr[--hlpr] = mas_of_stacks[i].stack[j];
            return arr;
    }
    //функція обчислення кількості елементів у масиві
    friend int all_elem_count(STACK mas[], int size)
    {
        int k = 0;
        for (int i = 0;i < size;i++)
            k += mas[i].count;
        return k;
    }
};
int main()
{
    int size,*stacks,kst=0;
    cout << "Enter number of stacks:" << endl;
    cin >> size;
    
    STACK *mas = new STACK [size],for_sort(0);
    sort(mas,for_sort, size);
    for (int i = 0;i < size;i++)
        mas[i].Print();
    stacks = Gathering(mas, size);
    kst = all_elem_count(mas,size);
    
    cout << "All elements:" << endl;
    for (int i = 0;i < kst;i++)
        cout <<"Item["<< i+1 <<"]: " << stacks[i] << endl;
    if (stacks != 0)
        delete[] stacks;
    delete[] mas;
    return 0;
}Допоможіть ,будь ласка. Чому при компіляції вибиває помилку - expression:_CrtIsValidHeapPointer(block)?
