Проблема в том, что вы помещаете одну и ту же ссылку Array
в окружающий массив несколько раз с помощью этого кода:
val blankArr = IntArray(mInt, { _ -> 0 } )
var arr = Array(nInt, { _ -> blankArr })
Вам необходимо создать копии blankArr
или немного изменить инициализацию:
fun print2DArray(arr: Array<Array<Int>>) {
arr.forEach {a->
println(a.joinToString(" ") { it.toString() })
}
}
//...
val arr = Array(nInt, { _ -> Array(mInt) { 0 } })
arr[0][0] = 100
print2DArray(arr)
Я сделал всю инициализацию массива в одном выражении, которое создает независимые вложенные массивы:
val arr = Array(nInt, { _ -> Array(mInt) { 0 } })