#include <iostream>

template<typename T, std::size_t N, std::size_t M>
void increment_2D(T (&a)[N][M])
{
    for(std::size_t n = 0; n < N; ++n)
        for(std::size_t m = 0; m < M; ++m)
            ++a[n][m];
}

int main()
{
    int a[3][3] = {1,2,3,4,5,6,7,8,9};
    increment_2D(a);
    for(auto& r: a) {
        for(int n: r)
           std::cout << n << ' ';
        std::cout << '\n';
    }
}

