Как задать размер массива через аргументы функции?
Выделить память динамически:int * tempArray = malloc(sizeof(int) * n * m);
Только потом не забывайте ее освобождать.
В памяти массив все равно одномерный будет, хоть тресни ;) N-мерность нужна для удобства доступа.