Задача 3. 2. Как получить значение элемента массива за его пределами (в данной задаче)?
Правильнй ответ - не нужно и пытаться.
ВЫВОД: функции типа Copy...() изменяют размер динамического массива по своему усмотрению исходя из количества запрашиваемых данных. Однако, при сокращении количества копируемых элементов в процессе выполнения программы, доступ к значениям за пределами размерности всё-таки возможен.
1. это в документации написано: "если данных оказывается меньше (или больше), чем вмещает массив, то производится попытка перераспределения массива таким образом, чтобы запрошенные данные поместились целиком и полностью"
2. похоже выход за пределы массива не отслеживается, аккуратней с такими "возможностями".
ВЫВОД: функции типа Copy...() изменяют размер динамического массива по своему усмотрению исходя из количества запрашиваемых данных. Однако, при сокращении количества копируемых элементов в процессе выполнения программы, доступ к значениям за пределами размерности всё-таки возможен.
Вывод не совсем правильный. Они изменяют видимый размер массива, без реаллокации. Поэтому данные будут доступны только в том случае, если ArrayResize не приведет к выделению нового куска памяти.
Мало того, это поведение нигде не описано, следовательно использоваться не может.
Короче. Ответ на вопрос 3.2 не совсем корректен, как собственно и сам вопрос.
Тут просто обязана быть пачка вопросов про double
№ | Задача | Вопрос | Ответ |
---|---|---|---|
1 | Что распечатает функция Print? 1) 0 2) 0.1 |
2) |
А это, случаем, не в сервисдеск отписывать надо?
Да можно ей пользоваться - для целочисленных данных. Никаких сюрпризов не будет.
Ну а для нецелочисленных, конечно, будут - из-за фишек, связанных с представлением данных.
Не. Неожиданно, не правда ли? Я по этой причине этой функцией не пользуюсь -- потенциальный гемор перевешивает.
В других программах расчёт (остатка от деления) тоже хромает:
В других программах расчёт (остатка от деления) тоже хромает:
MS office (кстати лицензию купили? ))) ) и MQL4 используют одну и ту же функцию библиотеки MSVC6 которая называется fmod. В ней ошибка.
т.е. делаете ли вы это в офисе или в mql4, вы делаете одно и тоже.
читать вот это: https://www.mql5.com/ru/articles/1561 в конце.
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Предлагаю проверить свои знания языка MQL5 и решить простые задачи:
1. Какое сообщение будет напечатано оператором?
2. Нужен ли оператор
2. (нет)
2. Как получить значение элемента массива за его пределами (в данной задаче)?
ВЫВОД: функции типа Copy...() изменяют размер динамического массива по своему усмотрению исходя из количества запрашиваемых данных. Однако, при сокращении количества копируемых элементов в процессе выполнения программы, доступ к значениям за пределами размерности всё-таки возможен.