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

Как устранять ошибки памяти? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пользователь вводит с клавиатуры строку символов. Сообщить, сколько слов в строке http://www.cyberforum.ru/cpp-beginners/thread1220037.html
Помогите пожалуйста. Надо написать программу: Пользователь вводит с клавиатуры строку символов. (не более 80 символов) Сообщить, сколько слов в строке. Указание: слова разделяются одним или...
C++ Эмуляция сигнала I и Q Доброго времени суток. Хочу спросить возможно ли эмулировать мнимую и действительную составляющую сигнала в Visual C++ или еще в какой-нибудь среде . Возможно я что-то не так сформулировал , заранее... http://www.cyberforum.ru/cpp-beginners/thread1220028.html
Реализовать структуру Music C++
Язык форума - русский. Переведите! Vitaliy1212, при повторном нарушении пункта правил 1.4. тема будет закрыта Задача.Описати структуру MUSIC,яка містить інформацію про музичні диски які...
Integer_sequence C++
Правильная ли такая реализация integer_sequence? У меня не компилируется, не могу сообразить почему.#include <iostream> #include <array> #include <utility> #include <tuple> namespace isq { ...
C++ Найти такие тройки натуральных чисел x,y,z из интервала от 1 до 20,для которых выполняется равенство x^2-y=z^2 http://www.cyberforum.ru/cpp-beginners/thread1220016.html
найти все такие тройки натуральных чисел x,y,z из интервала от 1 до 20,для которых выполняется равенство x^2-y=z^2
C++ Дано натуральное четырехзначное число n. Верно ли что это число содержит три одинаковые цифры Дано натуральное четырехзначное число n. Верно ли что это число содержит три одинаковые цифры подробнее

Показать сообщение отдельно
DrOffset
7312 / 4412 / 999
Регистрация: 30.01.2014
Сообщений: 7,245
01.07.2014, 15:19
МихаилХ,
Разыменование нуля, как на скрине, вполне можно найти отладчиком.
1) Самая действенная практика - это выработать опр. правила, которые помогут меньше совершать ошибки. Это проще, чем их потом искать. Следим за константностью, код должен быть простым и понятным - каждая функция решает свою задачу, избегаем god-object`ов, следим за контрактами (как раз именно здесь нужен ассерт, не стоит проверять ассертом все подряд, обычно стоит проверять только контракты. Помним, что ассерт - это инструмент контроля для программиста, а не для конечного пользователя), за владением ресурсов (умные указатели, пулы и т.п.). В целом, стараемся сначала проектировать, а потом писать код.
2) Специализированные инструменты статического анализа (например cppcheck) - помогают предупредить многие ошибки, дополняют первый пункт.
3) Debugger, он же отладчик (ну про это уже говорили).
4) Специализированные инструменты динамического анализа (valgrind, Intel Inspector XE и др.) .
5) Телепатия
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru