Как удалить элемент из массива (одномерного двумерного)? - страница 9

 
Можно конечно забить на расходы и издержки и в #define переписать массив любой размерности во вновь созданный 1-мерный массив перед вызовом функции (а потом переписывать обратно), но издержки будут плачевными.
 
Alexey Viktorov:

Почему не поможет?

...

Потому-что не срабатывает перегрузка ни на количество измерений массива ни на размер любого из измерений. А передавать в функцию параметры, которые могут быть определены автоматически - это не совсем мудрое решение. 

 
Dmitry Fedoseev:

Потому-что не срабатывает перегрузка ни на количество измерений массива ни на размер любого из измерений. А передавать в функцию параметры, которые могут быть определены автоматически - это не совсем мудрое решение. 

Да, я уже понял что это пустые хлопоты.

 
В общем тема эта стоит внимания но она очень обширная и сложная для меня, к такому через годы опыта приходят.
 
Seric29:
В общем тема эта стоит внимания но она очень обширная и сложная для меня, к такому через годы опыта приходят.

Не вдавайтесь сильно в подробности, они хотят сделать все слишком универсально, но можно и без этого прекрасно жить.

 
Вообще-то в первом ответе ветки был дан универсальный рецепт. Нужно только самому его включить и протестировать, ну не все же разжевывать и в рот класть, правда?
 
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)
 {

  // ..... ;

 }



void OnStart ()

{

  int ar1[];

  int ar2[][5];

  int ar3[][6][2];

  PackAndDel( ar1, 0, 1 );

  PackAndDel( ar2, 4, 1 );

  PackAndDel( ar3, 1, 3 );

}