Сап, чат передаю исходный массив в качестве параметра в функцию. Проблема в том, что изменяется исходный массив, хотя так не должно быть. Все массивы динамические. Где я мог накосячить?
если это ссылка - то данные будут меняться, а ссылка нет
Это магия компилятора, которая для ссылочных типов имитирует поведение нормальных типов. Но недостаточно логично имитирует. Например, для строк сделано copy-on-write, а для массивов нет.