Объявление массива на языке MQL4 - не получается задать количество элементов, передавая значение переменной (и даже константы). - страница 3
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Т.е. если переменная отрицательна, то берётся её модуль? Брр... Как говорится, happy debugging! ))
Про отрицательный остаток не понял.
Т.е. этот нормальный компилятор вот это пропустит? Вы, как я понял, им пользуетесь? Как отработает эта прога, если введёте с консоли минус 5?
Что-то вы не то говорите. Если компилятор и допускает переменную в качестве размера массива, то он хотя бы должен проверить её тип, чтобы она была целочисленной и беззнаковой, не?Как отработает эта прога, если введёте с консоли минус 5?
Т.е. если переменная отрицательна, то берётся её модуль? Брр... Как говорится, happy debugging! ))
Про отрицательный остаток не понял.
Но вы о другом, вероятно: "что если размер массива отрицательный?". А кто кроме вас узнает, что он отрицательный?
Да, именно. Вот в моём примере никто не знает, каким он будет. И программист - тоже. Понятно, что программист в этом примере должен объявить "а" как unsigned int, но странно, что компилятор такое пропускает.
Но за расширение кругозора спасибо.
// При любом индексе (и не целочисленном) ВСЕГДА (кроме нуля - если размер массива ноль) будет выполняться без ошибок.
Это компилироваться будет без ошибок. А вот выполняться может с ой какими логическими ошибками. И поди их вылови.
Это компилироваться будет без ошибок. А вот выполняться может с ой какими логическими ошибками. И поди их вылови.
Не будет, если массив не нулевой. Не понимаете - зачем хаять?
А вот когда у обычных массивов на уровне компилятор нет контроля при создании, это уже дыра.
Не понял.
https://www.mql5.com/ru/forum/95351/page3#comment_2819563
https://www.mql5.com/ru/forum/95351/page3#comment_2819563