package main
import "fmt"
func clone2DArray(arr2D [][]int) [][]int {
// Create a new 2D array with the same dimensions as the original
cloned := make([][]int, len(arr2D))
for i := range arr2D {
cloned[i] = make([]int, len(arr2D[i]))
copy(cloned[i], arr2D[i])
}
return cloned
}
func main() {
arr2D := [][]int{
{1, 2, 3, 0},
{4, 5, 6, 77},
{7, 8, 9, 31},
}
// Clone the 2D array
cloned := clone2DArray(arr2D)
fmt.Println("Original array:", arr2D)
fmt.Println("Cloned array:", cloned)
}
/*
run:
Original array: [[1 2 3 0] [4 5 6 77] [7 8 9 31]]
Cloned array: [[1 2 3 0] [4 5 6 77] [7 8 9 31]]
*/