Здравствуйте, Aleks, Вы писали:
D>>Практически можно изменить и второй массив... В С++ нет контроля границ массива, т.е. в данном случае происходит просто запись в "какую-то" область памяти, если эта область принадлежит второму массиву, то изменится он, если она вообще не является областью доступной для записи, то это вызовет исключение...
A>А что являеться областью НЕ доступной для записи ... проге доступна только та память которую она сама и выделяла или не только?
Ну, вообще процессу доступна вся его виртуальная память, в том смысле, что он может обратиться по любому из 32-разрядных адресов... Другое дело, что находится в памяти по данному адресу...
D>>Очень плохой код...
A>Где-то именно такой код я видимо и написал. Что в принципе не мудрено когда на каждом шагу такое
A>pIndicators[QIndicator[i]] ... все таки маловато ассертов я похоже написал
.
Можно инкапсулировать массив в классе, который будет контролировать корректность индекса при обращениях...
Но это уже тяжелая артилерия...
В простом случае: ASSERT в критических точках, дамп памяти на экран и дебагер в работу...