1 2 3 4 5 6 7 8 9 10 11 12 13 |
void foo(int *arr){} //Функция для одномерного массива void foo(int **arr){} //Функция для двумерного массива int main(){ const int N = 100; const int M = 200; int arr1[N]; //одномерный массив int arr2[N][M]; //двумерный массив foo(arr1); foo(arr2); //Почему ошибка??? } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
void foo(int (&arr)[100]){} //Функция для одномерного массива void foo(int (&arr)[100][200]){} //Функция для двумерного массива void foo(int (&arr)[100][200][300]){} //Функция для двумерного массива int main(){ const int N = 100; const int M = 200; const int L = 300; int arr1[N]; //одномерный массив int arr2[N][M]; //двумерный массив int arr3[N][M][L]; //двумерный массив foo(arr1); //Одномерный массив ушёл в свою функцию foo(arr2); //Двухмерный массив ушёл в свою функцию foo(arr3); //Трёхмерный массив ушёл в свою функцию } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
const int N = 100; const int M = 200; const int L = 300; void foo(int (&arr)[N]){} //Функция для одномерного массива void foo(int (&arr)[N][M]){} //Функция для двумерного массива void foo(int (&arr)[N][M][L]){} //Функция для двумерного массива int main(){ int arr1[N]; //одномерный массив int arr2[N][M]; //двумерный массив int arr3[N][M][L]; //двумерный массив foo(arr1); //Одномерный массив ушёл в свою функцию foo(arr2); //Двухмерный массив ушёл в свою функцию foo(arr3); //Трёхмерный массив ушёл в свою функцию } |
почему так получаеться:
а так нет: