Глупый вопрос. А в ИАРе нельзя включить проверку индекса массива на допустимый диапазон, как было например, в досовом Паскале ? Где-то подтираются данные...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Vladimir Ljaschko
14 апреля 2005 г. 10:26
Составить ответ
|||
Конференция
|||
Архив
Ответы
Некоторые причины порчи памяти в программах на C
—
smav
(14.04.2005 11:31, 1323 байт)
напишите свой class переопределите в нем оператор []. Правда проверка получится не при компиляции.
—
F8
(14.04.2005 11:03,
пустое
)
О CPP здесь не было ни слова :)
—
Al Volovich
(14.04.2005 11:10,
пустое
)
О С тоже небыло ни слова, было слово про ИАР ))
—
F8
(14.04.2005 11:33,
пустое
)
Ну, так сделайте. В чем проблема? А данные могут несанкционированно меняться
—
Bill
(14.04.2005 10:30, 175 байт)
Так, Билл, там это делалось автоматически компилятором с выводом системного сообщения на консоль! И стек контролировался. Вот где помощь в отладке. А как, кстати выяснить, если происходит редко?
—
Vladimir Ljaschko
(14.04.2005 10:39,
пустое
)
буржуи потырили эту идею!! в С++ есть массив с проверкой границ (вроде бы vector). по-моему в ИАРском ЕС++ поддерживается
—
yes
(14.04.2005 11:16,
пустое
)
Для отладки. А плюсами не владею :-(
—
Vladimir Ljaschko
(14.04.2005 11:26,
пустое
)
Если сделать обращение к массиву через функции как yes ниже написал, то можно и без плюсов обойтись
—
Al Volovich
(14.04.2005 11:43, 253 байт)
Угу, проникся...
—
Vladimir Ljaschko
(14.04.2005 11:53,
пустое
)
Это понятно. Здесь все придется самому делать.
—
Bill
(14.04.2005 10:56, 892 байт)
а взять массив 256 элементов и индексировать char-ом? просто непонятно, что делать если произошел выход за размер
—
yes
(14.04.2005 11:20, 200 байт)
Во-первых, само собой, это только для отладки.
—
Bill
(14.04.2005 11:47, 1023 байт)
А во-вторых размер char может быть больше 8 бит (пример-ADSP)
—
smav
(14.04.2005 13:42,
пустое
)
Спасибо. Эпитафия - "Он много знал" :-)
—
Vladimir Ljaschko
(14.04.2005 11:01,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru