Вызвано исключение, а почему - непонятно

struct DormitoryPlace
{
    std::string Name;            
    float average;
    float income;
    unsigned int group;
};

void Delete(DormitoryPlace*& array, int &amount)
{
    std::cout << "\nУдаление структур, у которых группа студента = 5\n";

    for (int i = 0; i < amount; i++)
    {
        if (array[i].group == 5)
        {
            amount--;
            for (int j = i; j < amount; j++)
                array[j] = array[j + 1];
            i--;
        }
    }

    DormitoryPlace* newarray = new DormitoryPlace[amount];
    for (int i = 0; i < amount; i++)
    {
        newarray[i] = array[i];
    }
    delete[] array;
    array = newarray;
}

У меня есть структура DormitoryPlace, а также функция для удаления элементов с заданным признаком из массива структур( он передается в качестве параметра). Так вот, когда я проделываю разные манипуляции, в конце при освобождении памяти:

delete[] array;

вызывается исключение:

Вызвано исключение: нарушение доступа для чтения. this было 0xB0949CB8.

Пробовал просто убрать, а вылазит ошибка. В чем может быть проблема?


Ответы (0 шт):