-
- Я вот тоже никогда границы массивов не проверяю, но со мной ничего такого не случается. Почему? Да потому, что прежде чем что-то программировать, сперва надо разработать алгоритм! И кто на "вылизывание" алгоритма своего времени не пожалеет, то Ксения(464 знак., 25.01.2019 00:00)
- здесь я виноват тем, что тупо перенес именно старый алгоритм вычисления номера пистолета колонки. В новом протоколе надо было это учесть. Так что всё дело именно в алгоритмах. - Лагунов(25.01.2019 11:54)
- Полностью поддерживаю. Если не говнокодить, не заниматься глупой экономией байтов, структурировать программу, то и проблем не будет. KISS = Keep It Simple Stupid VLLV(345 знак., 25.01.2019 10:46)
- Ну, собсно гря, ошибка не в назначении индекса как флага, а в неициализации индекса до его возможного использования. - mse homjak(26.01.2019 20:59)
- Если бы индекс не был проинициализирован вообще, он был бы равен нулю, что не привело бы к порче памяти. - VLLV(26.01.2019 23:15)
- Первый раз. - mse homjak(26.01.2019 23:45)
- Вы на c89 пишете, что нельзя инициализировать переменную по месту использования? (и объявлять там же) lloyd(133 знак., 26.01.2019 22:08)
- Почему "нельзя"? объявил переменную, инициализировал, использовал. mse homjak(491 знак., 26.01.2019 22:19 - 22:40)
- Если бы индекс не был проинициализирован вообще, он был бы равен нулю, что не привело бы к порче памяти. - VLLV(26.01.2019 23:15)
- Говорят, есть static assert. - evgeniy1294(25.01.2019 11:46)
- Это в С++11. В C++03 можно эмулировать. В C89, C99 -- никак. В C11 есть _Static_assert, но самого C11 ни у кого нет в 2019 году. - fk0(25.01.2019 12:17)
- На сях через макросы прекрасно работает. - evgeniy1294(25.01.2019 15:58)
- В С++11/14 научились уже даже TI (для ARM и MSP430) и IAR, не говоря про гыцэцэ - lloyd(25.01.2019 12:50)
- в IAR для AVR поддержки не замечал, правда я пользуюсь не самой последней версией - AlexG(25.01.2019 16:08)
- Это в С++11. В C++03 можно эмулировать. В C89, C99 -- никак. В C11 есть _Static_assert, но самого C11 ни у кого нет в 2019 году. - fk0(25.01.2019 12:17)
- Это за всё хорошее и против всего плохого. Проверка индекса (как и другие проверки) полезна на этапе отладки. Зато в поле велика ли польза от этой проверки? "У вас индекс плохой, идите лесом" - едва ли сильно лучше, чем тихий глюк. - SciFi(25.01.2019 10:52)
- Сильно лучше. Ибо memory corruption может обрушить карточный домик и породить лавину вторичных глюков, концов не найдёшь. Лучше громкий ассерт. Не во всех случаях, но именно в этом, когда очевидно, что операцию нужно откатить, но уже никак. Вообще fk0(334 знак., 25.01.2019 11:47)
- Мы немного про разное говорим. Я - да, про то, чтобы быть умным и не ошибаться :) А если уж не повезло, то те случаи "тихого глюка", что я говорю, оказались убойными, лучше бы проигнорировали данные. - VLLV(25.01.2019 11:20)
- Ну, собсно гря, ошибка не в назначении индекса как флага, а в неициализации индекса до его возможного использования. - mse homjak(26.01.2019 20:59)
- TDD ваше всё. Причём не только в алогоритмах. VVB_(72 знак., 25.01.2019 10:30)
- положил книгу по ссылке в upload - AlexG(26.01.2019 19:48)
- Что использовать size_t или ptrdiff_t ? Границы у них разные... - Говорите громче(24.01.2019 23:58,
)
- Я вот тоже никогда границы массивов не проверяю, но со мной ничего такого не случается. Почему? Да потому, что прежде чем что-то программировать, сперва надо разработать алгоритм! И кто на "вылизывание" алгоритма своего времени не пожалеет, то Ксения(464 знак., 25.01.2019 00:00)