Хех, и не одного объекта или структуры? У меня обычно говорит, какого типа ресурсы остались в памяти
да, есть и структуры, включающие в себя динамические массивы, такие вот, например :
struct k_PartialClose { string s_ProfitName[]; double d_ProfitPrice[]; double d_LotsToClose[]; }; k_PartialClose gka_PartClose[MAX];
Объявлены на глобальном уровне....
Получается, что терминал не может отдать память в чистему ?
нет, бОльшая вероятность, что не вызывается оператор delete после использования new
нет, бОльшая вероятность, что не вызывается оператор delete после использования new
я New не использую нигде....
Сергей, у тебя с точки зрения проектирования, неправильная конструкция - структура массивов. Это неправильная задача или неправильное решение. Не должно быть такого.
Нормально массив структур, но наоборот неправильно.
Сергей, у тебя с точки зрения проектирования, неправильная конструкция - структура массивов. Это неправильная задача или неправильное решение. Не должно быть такого.
Нормально массив структур, но наоборот неправильно.
struct k_PartialClose { string s_ProfitName[]; double d_ProfitPrice[]; double d_LotsToClose[]; }; k_PartialClose gka_PartClose[MAX];
а чего тут такого ? у меня и есть массив структур, а структура включат динамические массивы,
по документации тут нет ничего крамольного...
работать очень удобно, все ведь работает хорошо, заканчивается плохо...
наверное придется перенести все такие объявы на локальный уровень - не функции, нет и переменной...
а чего тут такого ? у меня и есть массив структур, а структура включат динамические массивы,
по документации тут нет ничего крамольного...
работать очень удобно, все ведь работает хорошо, заканчивается плохо...
тут тогда вопрос (не в тему топика) - соблюдаешь ли ты в массивах структуры порядок каждого массива?
то есть является ли элемент в массива строк ProfitName[X] обязательно соответствующий элементу ProfitPrice[X] и элементу LotsToClose[X]
или нет?
если таки да, то лучше делать структуру данных одного элемента, чтоб логически это смотрелось точнее (вспомни MqlRates, где имеется не массив high[], low[] и т.д. а только один элемиент бара)
а потом уже загонять её в массив массивов
тут тогда вопрос (не в тему топика) - соблюдаешь ли ты в массивах структуры порядок каждого массива?
то есть является ли элемент в массива строк ProfitName[X] обязательно соответствующий элементу ProfitPrice[X] и элементу LotsToClose[X]
или нет?
если таки да, то лучше делать структуру данных одного элемента, чтоб логически это смотрелось точнее (вспомни MqlRates, где имеется не массив high[], low[] и т.д. а только один элемиент бара)
а потом уже загонять её в массив массивов
struct k_PartialClose { string s_ProfitName[]; double d_ProfitPrice[]; double d_LotsToClose[]; }; k_PartialClose gka_PartClose[MAX];
может и не совсем удачно получилось.
смысл такой - каждый i-ый ордер gka_PartClose[i] может иметь нескольео уровней TakeProfit - d_ProfitPrice[], на каждом
из которых необходимо производить частичное закрытие позиции объемом d_LotsToClose[].
количество уровней для каждого ордера может быть свое - ArrayResize(gka_PartClose[i].d_ProfitPrice, LevelsCount).
Если что-то можно проще, посоветуй...
а касательно утечки - вопрос серъезный. если получится воспроизвести, то обязательно дай код в сервисдеск.
Надо специально написать програмку, работающуб с такого типа структурами :
struct k_PartialClose
{ string s_ProfitName[]; double d_ProfitPrice[]; double d_LotsToClose[]; }; k_PartialClose gka_PartClose[MAX];

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
при завершение работы советник выдает такого типа сооющения :
200(или 300 или 580 или ...) bytes of leaked memory
Единственное, что уменя есть там относительно памяти - это динамические массивы abc[],
ArrayResize(abc, ...)
Получается, что терминал не может отдать память в чистему ?