Форум программистов, компьютерный форум, киберфорум
Наши страницы

Проверить на выход за границы массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка очереди <char> http://www.cyberforum.ru/cpp-beginners/thread856300.html
помогите пож с сортировкой очереди queue очередь состоит из латинсколо алфавита. нужно отсортировать по возростанию и по спаданию .. типо от а до z и от z до а если можно через <algoritm> ну или...
C++ тип time_t Нужно ввести 2 переменные типа time_t с клавиатуры , потом переконвертировать их в строки и записать в файл. В процессе исполнения программы вылетает ошибка: Debug assertion failed. Expression:... http://www.cyberforum.ru/cpp-beginners/thread856297.html
C++ Символьные вычисления
Есть задача создания символьных вычислений с помощью C++. Все подобные приложения написаны на Lisp. Думал разобраться с SymbolicC++3 но документации нет вовсе и вся библиотека не компилируется а...
Матрица: определить количество строк, не содержащих ни одного нулевого элемента C++
для решения задач: 1) определить количество строк, не содержащих ни одного нулевого элемента; 2) найти максимальное из чисел, встречающихся в заданном массиве более одного раза. #include...
C++ Объявление объекта класса из DLL C++ Builder 6 http://www.cyberforum.ru/cpp-beginners/thread856274.html
Добрый день! Пишу программу которая вызывает функции из DLL с явной загрузкой. Полазил по инету, вроде все правильно делаю. Когда объявляю новый объект класса в проекте, компилятор ругается на эти 3...
C++ Моя первая консольная игра :D Всем доброго времени суток! Сегодня я хочу показать вам свою первую игру, правда пока она работает в консоли :( В ней вы можете прыгать и ходить влево, вправо. Но у игры есть один баг: после прыжка... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1646 / 1018 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
05.05.2013, 16:39
Сообщать об исключении и тем более гасить его - совершенно не операторское дело. Его задача только "подчистить" что возможно и насколько возможно в данной ситуации и передать исключение дальше. Таким образом, порядок действий такой:
а) выделить память под новый массив, исключение при этом перехватывать не надо: если возникнет ошибка, то сам объект пока что в прежнем состоянии и никакие ресурсы не утекли.
б) переписать содержимое копируемого объекта в выделенную память, перехватывая исключения. Если при копировании одного из элементов будет выброшено исключение, уже надо освобождать ресурсы: в обратном порядке уничтожить уже заполненные элементы нового массива и освободить сам массив.
в) уничтожить содержимое старого массива и освободить его, после чего заменить новым массивом. Эта операция не должна приводить к исключительным ситуациям (если тип T сделан по уму и его деструктор не выбрасывает исключений).
При таком порядке действий операция либо завершится успешно, либо будет прервана исключением, а сам объект при этом останется в том же состоянии, в котором был до начала операции (т.н. "сильная" гарантия безопасности). Утечек при возникновении исключений такой оператор тоже не создаст.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru