Можно конечно забить на расходы и издержки и в #define переписать массив любой размерности во вновь созданный 1-мерный массив перед вызовом функции (а потом переписывать обратно), но издержки будут плачевными.
Потому-что не срабатывает перегрузка ни на количество измерений массива ни на размер любого из измерений. А передавать в функцию параметры, которые могут быть определены автоматически - это не совсем мудрое решение.
Потому-что не срабатывает перегрузка ни на количество измерений массива ни на размер любого из измерений. А передавать в функцию параметры, которые могут быть определены автоматически - это не совсем мудрое решение.
Вообще-то в первом ответе ветки был дан универсальный рецепт. Нужно только самому его включить и протестировать, ну не все же разжевывать и в рот класть, правда?
Ilya Malev: Вообще-то в первом ответе ветки был дан универсальный рецепт. Нужно только самому его включить и протестировать, ну не все же разжевывать и в рот класть, правда?
Илья, неужели Вы относитесь к теме, как к чему-то серьезному? Просто, поиграться и маненько померяться... Рабочий ответ Вы дали: все в одномерный массив и обратно, независимо от размерности. Мой ответ совпадает с Вашим, есть только маленькие технические подробности, не меняющие сути. Насчет define и плачевных издержек не понял.
Илья, неужели Вы относитесь к теме, как к чему-то серьезному? Просто, поиграться и маненько померяться... Рабочий ответ Вы дали: все в одномерный массив и обратно, независимо от размерности. Мой ответ совпадает с Вашим, есть только маленькие технические подробности, не меняющие сути. Насчет define и плачевных издержек не понял.
Нет, наоборот несерьезно, просто я ТС объяснил ещё раз где нужно искать решение (первым же постом оно скорее всего рабочее было написано, хотя я не проверял). А потом уже началась болтовня всякая :)
Хотя ситуация печальная с этими массивами в мкл на самом деле, другое дело, что они нафик не нужны в 99% случаев. Когда есть голова на плечах, любой кодер использует структуры или даже объекты.
define который я написал позволяет решить задачу, которую я же поставил)) - одним вызовом ArrayDel исполнить код, который написал Дмитрий, для разных массивов. Правда это не функция, а "мертвому припарка" как говорится. А про издержки define - это если вариант с формулировкой параметра int ar[] для любого массива очень хочется запустить , можно сделать так (это упрощенно, на самом деле туда ещё число измерений нужно передать):
#property strict#define PackAndDel(A,S,C) { int tmp[]; ArrayCopy(tmp,A); ArrayDelete(tmp,S,C); ArrayCopy(A,tmp); }
void ArrayDelete(int &ar[], int start, int count)
{
// ..... ;
}
voidOnStart ()
{
int ar1[];
int ar2[][5];
int ar3[][6][2];
PackAndDel( ar1, 0, 1 );
PackAndDel( ar2, 4, 1 );
PackAndDel( ar3, 1, 3 );
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Почему не поможет?
...
Потому-что не срабатывает перегрузка ни на количество измерений массива ни на размер любого из измерений. А передавать в функцию параметры, которые могут быть определены автоматически - это не совсем мудрое решение.
Потому-что не срабатывает перегрузка ни на количество измерений массива ни на размер любого из измерений. А передавать в функцию параметры, которые могут быть определены автоматически - это не совсем мудрое решение.
Да, я уже понял что это пустые хлопоты.
В общем тема эта стоит внимания но она очень обширная и сложная для меня, к такому через годы опыта приходят.
Не вдавайтесь сильно в подробности, они хотят сделать все слишком универсально, но можно и без этого прекрасно жить.
Вообще-то в первом ответе ветки был дан универсальный рецепт. Нужно только самому его включить и протестировать, ну не все же разжевывать и в рот класть, правда?
Илья, неужели Вы относитесь к теме, как к чему-то серьезному? Просто, поиграться и маненько померяться... Рабочий ответ Вы дали: все в одномерный массив и обратно, независимо от размерности. Мой ответ совпадает с Вашим, есть только маленькие технические подробности, не меняющие сути. Насчет define и плачевных издержек не понял.
Илья, неужели Вы относитесь к теме, как к чему-то серьезному? Просто, поиграться и маненько померяться... Рабочий ответ Вы дали: все в одномерный массив и обратно, независимо от размерности. Мой ответ совпадает с Вашим, есть только маленькие технические подробности, не меняющие сути. Насчет define и плачевных издержек не понял.
Нет, наоборот несерьезно, просто я ТС объяснил ещё раз где нужно искать решение (первым же постом оно скорее всего рабочее было написано, хотя я не проверял). А потом уже началась болтовня всякая :)
Хотя ситуация печальная с этими массивами в мкл на самом деле, другое дело, что они нафик не нужны в 99% случаев. Когда есть голова на плечах, любой кодер использует структуры или даже объекты.
define который я написал позволяет решить задачу, которую я же поставил)) - одним вызовом ArrayDel исполнить код, который написал Дмитрий, для разных массивов. Правда это не функция, а "мертвому припарка" как говорится. А про издержки define - это если вариант с формулировкой параметра int ar[] для любого массива очень хочется запустить , можно сделать так (это упрощенно, на самом деле туда ещё число измерений нужно передать):