справка по ArrayResize не содержит описания для случая, когда reserve_size == -1
это изменяет обычное поведение ArrayResize при уменьшении размера массива, происходит реальное перевыделение памяти, аналог C++ std::vector<>::shrink_to_fit()
Если уменьшается размер массива, то перевыделение происходит? Под перевыделением имею в виду резервирование другого куска памяти и копирование туда данных.
Т.е. нужно понять, происходит ли при уменьшении массива дополнительная потребность в памяти?
struct A { MqlTick Ticks[]; };
voidOnStart()
{
A Array[];
ArrayResize(Array, 1);
constint Size = ::ArrayResize(Array[0].Ticks, (int)ArraySizeMax<MqlTick>());
Print(Size); // После перезагрузки Терминала может отсутствовать Print.
}
Журнал Терминала.
Scripts script Test6 (XAUUSD,M1) loaded successfully
MQL5 VirtualAlloc failed in large allocator, size=12614369504
MQL5 VirtualAlloc failed in large allocator, size=9460777088
MQL5 VirtualAlloc failed in large allocator, size=9263677600
MQL5 VirtualAlloc failed in large allocator, size=9165127872
MQL5 VirtualAlloc failed in large allocator, size=9115852928
MQL5 VirtualAlloc failed in large allocator, size=9103534176
MQL5 VirtualAlloc failed in large allocator, size=9097374752
MQL5 VirtualAlloc failed in large allocator, size=9095835072
MQL5 VirtualAlloc failed in large allocator, size=9095786824
MQL5 VirtualAlloc failed in large allocator, size=9095786584
MQL5 VirtualAlloc failed in large allocator, size=9095786528
MemoryException 21364736bytesnot available, 0 heapmin result
MemoryException 21364736bytesnot available, 0 heapmin result
Scripts script Test6 (XAUUSD,M1) removed
Однако, в журнале эксперта может не быть (не при каждом запуске) соответствующего принта.
Читаю: «Ранее, если в производном классе или структуре определялся метод с тем же именем, что и в базовом классе, происходилаперегрузка: все варианты методов (и предка, и потомка) были доступны в наследнике. Теперь, методы с одинаковым именем в потомкескрываютметоды предка (method hiding).»
Вопрос: а что там сейчас в плюсах? Бьерн еще в 98 стандарте столько дичи намутил, хотя бы с friend, а вроде скоро на повестке С++ 26?
Классификация советников. Все советники, запускаемые в Оптимизаторе, делятся на два типа. Торговые. Статистические: "обучение", обработка котировочных данных. Каждый из них тоже делится на два типа
у меня не работает... Ни из ME4 ни из ME5
У меня нет проблем с «PrintScreen» в MT5 build 4260 на Windows 10. Что вы используете?
I don't have any "PrintScreen" issues with MT5 build 4260 on Windows 10. What are you using?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX
Ilyas, 2024.03.19 17:20
справка по ArrayResize не содержит описания для случая, когда reserve_size == -1
это изменяет обычное поведение ArrayResize при уменьшении размера массива, происходит реальное перевыделение памяти, аналог C++ std::vector<>::shrink_to_fit()
Если уменьшается размер массива, то перевыделение происходит? Под перевыделением имею в виду резервирование другого куска памяти и копирование туда данных.
Т.е. нужно понять, происходит ли при уменьшении массива дополнительная потребность в памяти?
К сожалению, происходит.
Просьба подумать над другим алгоритмом поведения при уменьшении размера массива. Спасибо.
Строка для поиска: Uluchshenie 136.Окно котировок (F10) - не сохраняет настройки окна;
b5273, ArrayResize может "отключить" Print.
Журнал Терминала.
Однако, в журнале эксперта может не быть (не при каждом запуске) соответствующего принта.
Строка для поиска: Oshibka 147.
b5273, ArrayResize может "отключить" Print.
В принципе, ArrayResize запросто может "убить" и любой работающий советник.
Очень жаль
Вопрос: а что там сейчас в плюсах? Бьерн еще в 98 стандарте столько дичи намутил, хотя бы с friend, а вроде скоро на повестке С++ 26?
b5274, разное поведение оптимизатора компилятора для статических и динамических массивов.
В ходе обсуждения выяснилось, что статические массивы работают быстрее динамических.
Немного изменил старый код и получил неожиданный результат.
Статический будто был вырезан компилятором, но результат правильный.
Строка для поиска: Uluchshenie 137.