-
- смотги и учись у стагого евгея: Mahagam(399 знак., 01.10.2020 11:02)
- Ну ващета скрипт линкера ни как не ограничит обращения к памяти. - Nikolay801_(01.10.2020 11:55)
- зато гарантирует, что недалёкий выход за пределы массива не даст hard fault - Mahagam(01.10.2020 11:56)
- Еще интереснее если попробовать сделать вот так: Tpoeшник(192 знак., 01.10.2020 11:31)
- В чём смысл эксперимента? Вы затрёте всю память, включая стек
возврата, но в игрушечной программе, где нет других переменных и
некуда возвращаться, это, возможно, сойдёт с рук. В реальном
проекте - не сойдёт. - йцyкeн(01.10.2020 11:48)
- Я сделал такое на реальном проекте после инициализации и прямо
перед основным циклом. Устройство работает. Смысл в том чтоб
оценить толщину брони у методов которыми от троешников компиляторы
и чипы защищаются. - Tpoeшник(01.10.2020 11:58)
- Лотерея. Зависит от чипа, какие у него есть аппаратные средства контроля выхода за границы, и активированы они или нет. Зависит от разделения памяти на чипе, возможно стек возвратов находится в отдельной памяти и ни как не пострадает. Зависит от организации регистрового поля у чипа и компилятора, компилятор может переменную i хранить в памяти, а может в регистре, результат будет разный. Слишком много вариантов. Поэтому проблема выхода за границы часто упоминается. - AlexBi(01.10.2020 12:11)
- Я сделал такое на реальном проекте после инициализации и прямо
перед основным циклом. Устройство работает. Смысл в том чтоб
оценить толщину брони у методов которыми от троешников компиляторы
и чипы защищаются. - Tpoeшник(01.10.2020 11:58)
- В чём смысл эксперимента? Вы затрёте всю память, включая стек
возврата, но в игрушечной программе, где нет других переменных и
некуда возвращаться, это, возможно, сойдёт с рук. В реальном
проекте - не сойдёт. - йцyкeн(01.10.2020 11:48)
- Я сейчас вот что сделаю раз такая пьянка: Tpoeшник(128 знак., 01.10.2020 11:09)
- Это же бесконечный цикл. С отрицательными индексами тоже будет
весело. Впрочем, хозяин — барин. - SciFi(01.10.2020 11:14)
- Почему бесконечный!? Нормальный цикл. Работает. Я не доказываю
ничего, проверяю. Переписал немного "код" - пашет Tpoeшник(144 знак., 01.10.2020 11:19)
- бесконечный будет если "for (INT16U i = 0; i <= 0xffff; i++)" - Дoктyp77(01.10.2020 11:22,
)
- Не понимаю вас. i плюсуется пока условие выполняется. Когда i
станет равным 0xffff программа выйдет из цикла. В итоге от 0 до
0xfffe сделает 0xffff итераций. Или я туплю где то!? - Tpoeшник(01.10.2020 11:27)
- немного ошибся, надо использовать uint16_t, а Вы условие в моём
сообщение внимательно изучите :) Дoктyp77(154 знак., 01.10.2020 11:36,
)
- Просто я невнимательный сегодня. Вместо INT16U показалось INT16 (то
есть -32768..32767). А тебе тройка за плохие названия типов. - SciFi(01.10.2020 11:35)
- Вообще INT16 у меня INT16S. Вам невнимательность прощаю (умный человек) , но по Украине позицию - нет. - Tpoeшник(01.10.2020 11:37)
- немного ошибся, надо использовать uint16_t, а Вы условие в моём
сообщение внимательно изучите :) Дoктyp77(154 знак., 01.10.2020 11:36,
- Не понимаю вас. i плюсуется пока условие выполняется. Когда i
станет равным 0xffff программа выйдет из цикла. В итоге от 0 до
0xfffe сделает 0xffff итераций. Или я туплю где то!? - Tpoeшник(01.10.2020 11:27)
- бесконечный будет если "for (INT16U i = 0; i <= 0xffff; i++)" - Дoктyp77(01.10.2020 11:22,
- Почему бесконечный!? Нормальный цикл. Работает. Я не доказываю
ничего, проверяю. Переписал немного "код" - пашет Tpoeшник(144 знак., 01.10.2020 11:19)
- Это же бесконечный цикл. С отрицательными индексами тоже будет
весело. Впрочем, хозяин — барин. - SciFi(01.10.2020 11:14)
- Ну ващета скрипт линкера ни как не ограничит обращения к памяти. - Nikolay801_(01.10.2020 11:55)
- Можешь где то (?) включить генерацию map файла и посмотреть где и по каким адресам оно у тебя лежит и куда в реальности попадает, когда мимо тыкаешь. - Nikolay801_(01.10.2020 10:55)
- От процессора зависит, авркам пофиг, на кортексах можно в ексепшен бас фаулт свалиться, если tmpFlashData где то с края памяти лежит или индекс много много больше, [64] явно за пределы памяти не вылезет. - Nikolay801_(01.10.2020 10:40)
- А вот если ты туда будешь писать... Будет намного веселей. - Nikolay801_(01.10.2020 10:38)
- не, до такого даже я не додумался) - Tpoeшник(01.10.2020 10:40)
- оно обычно не намеренно получается. - Nikolay801_(01.10.2020 10:41)
- я пару раз так влетал. :-) - Лaгyнoв(01.10.2020 13:08)
- оно обычно не намеренно получается. - Nikolay801_(01.10.2020 10:41)
- не, до такого даже я не додумался) - Tpoeшник(01.10.2020 10:40)
- В общем случае очень страшно. Undefined behavior же. Даже если в конкретном случае известно, что там есть память, из которой можно читать, компилятор, видя такое, может решить, что погромист ку-ку, и нагенерить странный код. И формально будет прав, ибо undefined behavior. SciFi(262 знак., 01.10.2020 10:20)
- Ну если индекс известен на стадии компиляции то такое завернет
компилятор, а если в рантайме то будут невалидные данные (хорошо
если адрес валидный ещё будет) - OlegPowerC(01.10.2020 09:58)
- Невалидные для меня не страшно. Читается массив из памяти. И есть
вероятность чтения по индексу выходящему за пределы объявленных
границ массива. - Tpoeшник(01.10.2020 10:07)
- Ненадежное ПО. Ситуация должна быть исключена полностью. - Xитpый Kитaeц(01.10.2020 16:48)
- смотря какой проц. Можно на Hard Fault получить. - BlackMorda(01.10.2020 10:10)
- Meга. Да, лучше такого не делать, но уже сделал. Есть в принципе
собака. - Tpoeшник(01.10.2020 10:15)
- собака тут не поможет Nikolay801_(524 знак., 01.10.2020 13:47)
- После оплаты заказчиком, иожно будет исправитть. ;-) - BlackMorda(01.10.2020 10:17)
- Уже и оплатили и гарантийные сроки кончились. Я листал код старый и
плакал. Во многих местах ,но и это конечно. - Tpoeшник(01.10.2020 10:53)
- Триллер "Не оглядывайся" ? - VLLV(01.10.2020 11:13)
- Уже и оплатили и гарантийные сроки кончились. Я листал код старый и
плакал. Во многих местах ,но и это конечно. - Tpoeшник(01.10.2020 10:53)
- Meга. Да, лучше такого не делать, но уже сделал. Есть в принципе
собака. - Tpoeшник(01.10.2020 10:15)
- Невалидные для меня не страшно. Читается массив из памяти. И есть
вероятность чтения по индексу выходящему за пределы объявленных
границ массива. - Tpoeшник(01.10.2020 10:07)
- смотги и учись у стагого евгея: Mahagam(399 знак., 01.10.2020 11:02)