Форум программистов, компьютерный форум CyberForum.ru

New - исключения - C++

Восстановить пароль Регистрация
 
usernet009
 Аватар для usernet009
24 / 24 / 1
Регистрация: 28.12.2009
Сообщений: 85
26.06.2010, 00:07     New - исключения #1
Анука парни, подскажите что не так делаю. Есть такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    int i;
    double *p[5000]; 
    try
    {
        for ( i=0; i<5000; i++)
        {
            p[i] = new double[50000000];
            getch();
        }   
    }
    catch ( bad_alloc &)
        {
            cout<<"Error.... can not find free memory\n";
            i--;
            for ( int j=i; i>=0; i-- )
                delete []p[i];
        }
    
    system("pause");
    return 0;   
}
Ии... он работает, тоесть после нескольких нажатий клавиш ( гдето 5 ) вылазит ошибка о нехватки памяти и диспетчер задач показует что памяти почти не осталось
Потом я запустил этот же код но поменял строку
p[i] = new double[50000000];
на
p[i] = new double[5000000];
Тоесть убрал один нолик.
И, запустил. Нажимая разные кнопочки я видел как уменьшается размер свободной памяти. Но тут он дошел до 7 мб и все... new не выбросила исключения но и не выделила память. И так до бесконечности.
Запускал еще пару раз - тоже самое.
Вопрос - почему ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2010, 00:07     New - исключения
Посмотрите здесь:

исключения C++
исключения C++
исключения C++
Исключения C++
Исключения C++
C++ Исключения
Исключения C++
C++ исключения

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru