-
- Ну, собсно гря, ошибка не в назначении индекса как флага, а в неициализации индекса до его возможного использования. - 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)