Когда параметром является двумерный массив, его вторая размерность обязательно указывается в объявлении функции
float a[ ][4].
Объявление параметра как float a[ ][ ] недопустимо.
Нет ничего странного в том, что компилятору требуется вторая размерность, ведь именно она определяет размер тех одномерных массивов, которые составляют двумерный.
Пример. Определить функцию, которая распечатывает двумерный массив а[3][4] в виде матрицы.
void print (float a[] [4], int size1)
{
for (int i = 0; i < size1; i++)
{
for (int j = 0; j < 4; j++)
cout « a[i][j] « " ";
cout « endl;
}
}
Заголовок функции в предыдущем примере мог быть и таким:
void print (float (*a)[4], int size1)
Параметр a здесь является указателем на одномерный массив из четырех вещественных чисел.
Если вам не нравится передавать в функцию двумерные массивы, можно передать двумерный массив как одномерный, и в теле функции вычислять местоположение элемента.
void print1(float a[], int size1, int size2)
{
for (int i = 0; i < size1; i++)
{
for (int j = 0; j < size2; j++)
cout « a[i * size2 + j] « " ";
cout « endl ;
}
}
Чтобы правильно вызвать эту функцию, надо передать ей в первом параметре адрес не двумерного массива m, а одномерного *m, иными словами не float**, а просто float*.
float m[] [4] = {{11, 12, 13, 14},
{21, 22, 23, 24},
{31, 32, 33, 34}};
print1(*m, 3, 4);
Этого же можно добиться явным приведением типа.
print1((float*)m, 3, 4);
Источник: www.cplus-plus.ru
Добро пожаловать в блог официального сайта www.cplus-plus.ru
Все представленные материалы в этом блоге находятся по адрусу www.cplus-plus.ru
Сайт разработан с целью удобного изучения объектно-ориентированного программирования языка C++. Сайт содержит: большое количество cред разработки, видеоуроков, исходников, учебников C++ как для начинающих, так и для продвинутых!
Сайт разработан с целью удобного изучения объектно-ориентированного программирования языка C++. Сайт содержит: большое количество cред разработки, видеоуроков, исходников, учебников C++ как для начинающих, так и для продвинутых!
Поиск по этому блогу
Каталог статей
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий