Здравствуйте eXXXplosivo, Вы писали:
XXX>1) Некорректные операции с указателями и ошибки выделения/освобождения памяти. XXX>2) Некорректные операции с массивами (выход за границы оного, например). XXX>3) Неверные условия выхода из цикла (приводящие к зацикливанию, но не обязательно только к нему). XXX>4) Некорректная организация синхронизации (deadlocks, livelocks и нарушения доступа как результат). XXX>5) Передача неверных параметров (НЕ своим функциям, а куда-то в другие компоненты системы; пример — вызов WinAPI). XXX>6) Отсутствие начальной инициализации переменных/памяти. XXX>7) Неверная реализация специфичного алгоритма (фактически, всё, что не подпадает под категории с 1-й по 6-ю).
Ошибки можно разделить на две категории:
1. те, которые выявляются сразу (на первой компиляции, на первом запуске)
2. те, которые живут в программе долгое время
Ясно что ошибки из первой категории не интересны, так как они выявляются сразу и чаще всего вызваны опечатками, невнимательностью и т.д.
Поэтому приведу статистику только для ошибок из второй категории:
1. 25%
2. 10%
3. ~0%
4. 35%
5. ~0%
6. ~0%
7. 30%