Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 596

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну хорошо. Пусть в OnDeinit() я их удалю. Но у меня сейчас ошибка out of memory уже выскакивает в процессе тестирования... То есть, там до OnDeinit() и не дойдёт.
Значит создаёте кучу объектов-дублей. Потом вообще всё поплывёт, и концов не сыщете.
Значит создаёте кучу объектов-дублей. Потом вообще всё поплывёт, и концов не сыщете.
А как мне узнать, где именно я не удаляю объекты? Программа-то большая вышла :)
А как мне узнать, где именно я не удаляю объекты? Программа-то большая вышла :)
Вам бы сначала узнать где, и как вы наплодили такую кучу. Их же там у вас, если мне память не изменяет, десяток тысяч? Это что? Объекты исторических данных? Или что за объекты такие, что их такое количество? Массив объектов - чего?
Вам бы сначала узнать где, и как вы наплодили такую кучу. Их же там у вас, если мне память не изменяет, десяток тысяч? Это что? Объекты исторических данных? Или что за объекты такие, что их такое количество? Массив объектов - чего?
аа, там много всего. В основном типы свечей и правила. Это сложно ))
А как мне узнать, где именно я не удаляю объекты? Программа-то большая вышла :)
Вы там случаем не на каждом тике создаете новый объект. Оно конечно можно и так (но как по мне не всегда разумно), но наверно разумней тогда будет сразу по окончанию работы с объектом сдувать его. Только такое объяснение приходит в голову.
аа, там много всего. В основном типы свечей и правила. Это сложно ))
Кому сложно, а кому-то и нет. Но разгребать теперь всё вам.
Совет. Начните с нуля. Постепенно добавляя нужные объекты в код и глядите что на выходе - если при смене тф или после перекомпиляции вам будет сообщение в журнал о неудалённых объектаъ и утечке памяти, то исправляйте. Далее - опять добавляйте функционал с проверкой на правильное хранение, использование и удаление всех объектов. Удалять их нужно обязательно самому если вы их создаёте посредством new.
Вы там случаем не на каждом тике создаете новый объект. Оно конечно можно и так (но как по мне не всегда разумно), но наверно разумней тогда будет сразу по окончанию работы с объектом сдувать его. Только такое объяснение приходит в голову.
На каждой свече.
На каждой свече.
Ну если вам не нужны предыдущие объекты, то стоит их удалять сразу.
Ну если вам не нужны предыдущие объекты, то стоит их удалять сразу.
Да, в том-то и дело. Так всё запуталось, объекты в других объектах и не так просто уже удалить. Одни объекты зависят от других, а те от третьих, которые зависят от первых :)
Жизнь такая сложная :(
Да, в том-то и дело. Так всё запуталось, объекты в других объектах и не так просто уже удалить. Одни объекты зависят от других, а те от третьих, которые зависят от первых :)
Жизнь такая сложная :(
Эк вы всё позапутали. Не правильное планирование задачи как раз и приводит к таким вот последствиям.
Если объекты создаются в классе, то по завершении его работы он должен их удалить в своём деструкторе. Другие же классы, прежде чем получить указатель на объект, должны проверить его валидность. И в принципе не должно быть таких переплетённых взаимосвязей. Клубок наплели какой-то. Сложно - не означает качественно. Всё должно быть прозрачно и отслеживаемо. В первую же очередь - для вас.