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

bad_alloc - проверка нехватки памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить периметр треугольника http://www.cyberforum.ru/cpp-beginners/thread821565.html
Вычислить периметр произвольного треугольника, если известны две его стороны и угол между ними.
C++ Найти стороны треугольника Треугольник задан величинами своих углов и радиусом описанной окружности. Найти стороны треугольника. http://www.cyberforum.ru/cpp-beginners/thread821564.html
endl C++
#include <iostream> int main() { using std::cout; using std::endl; unsigned short int Width = 5, Length; Length = 10;
C++ Своя реализация strcpy - не пойму где ошибка!
void copy(char *p, char *q) throw (char*) { int l2 = strlen(q); //cout<<"strlen(q)="<<strlen(q)<<" strlen(p)="<<strlen(p)<<endl; if (strlen(p)<l2) throw "exeption"; for (int i=0; i<l2 ;i++) { *(p+i) = *(q+i); i++; }
C++ Разработать алгоритм работы программы (файлы, азбука "Морзе") http://www.cyberforum.ru/cpp-beginners/thread821534.html
Есть такая задача: (к ней нужно разработать: Алгоритм работы программы - блок-схему) Разработать программу которая считывает текст с файла (*.txt) выводит его в этом виде на экран, переводит этот текст в соответствии азбуке "Морзе" показывает последовательность полученных символов не экран и записывает их у новый файл. Имена файлов задаются пользователем.
C++ хранение данных в файле Народ, помогите, пожалуйста, у меня есть программка, нужно сделать реализацию хранения данных в файле (.txt) при открытии - вся информация загружалась с файла, а при завершении - сохранялась в файл. #include <iostream> #include <string.h> #include <cstring> #include <windows.h> using namespace std; enum type_t {REPUBLIC=1, MONARCHIA=2}; подробнее

Показать сообщение отдельно
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103

bad_alloc - проверка нехватки памяти - C++

28.03.2013, 21:46. Просмотров 484. Ответов 2
Метки (Все метки)

Добрый вечер. У меня такая проблема - написал конструктор копирования массива деков символов, и решил посмотреть что произойдет, если не хватит памяти. В результате программа радостно падает и появляется вот такое окошко.
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DA::DA(const DA & D1) 
{
    D = 0;
    try
    {
        std::cout << D1.N;
        N = D1.N;
        D = new deq[D1.N];
        for (int i = 0; i < D1.N; i++)
        {
            if (i > 2)
            {
                throw std::bad_alloc();
            }
 
            D[i] = D1[i];           
        }
    }
    catch(std::bad_alloc e)
    {
        std::cerr << e.what() << std::endl;             
        delete[] D;
    }
    
}
пробовал вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DA::DA(const DA & D1) 
{
    D = 0;
    try
    {
        std::cout << D1.N;
        N = D1.N;
        D = new deq[D1.N];
        if (D1.N > 2)
            {
                throw std::bad_alloc();
            }
        for (int i = 0; i < D1.N; i++)
        {
            D[i] = D1[i];           
        }
    }
    catch(std::bad_alloc e)
    {
        //std::cout << i << std::endl;
        std::cerr << e.what() << std::endl;     
        
        //N = i;
        //std ::cout << N << std::endl;
        delete[] D;
    }
    
}
- эффект тот же, подскажите пожалуйста, чего я не так делаю. Сразу скажу, что обработка исключений - моя больная тема.
Миниатюры
bad_alloc - проверка нехватки памяти  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru