Курсовая работа: Особливості мови програмування С
cout<<a[i][j];
cout<<endl;
}
}
int b[3][4];
...
print(b);
Подібна функція працює лише для масивів 3 4. Згадуючи, що при передачі у функцію інформація про розмір одновимірного масиву втрачається, ми можемо модифікувати попередній приклад для передачі масивів, що мають змінний перший розмір:
void print(int a[][4], int n)
{
for (int i=0; i<n; i++)
...
}
int b[7][4];
...
print(b);
Відзначимо, що інформація про другий розмір двовимірного масиву не втрачається і, більш того, істотно необхідна для інтерпретації усередині функції запису а[i]: для обчислення значення вираження a+i до вмісту вічка а у внутрішній виставі додається величина i*sizeof(int[4]). Саме з цієї причини жодного способу передавати у функції звичайні масиви із змінною другою розмірністю не існує.
При передачі у функцію динамічного двовимірного масиву подібних проблем не виникає:
void print_dyn(int** а, int n, int m)
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
cout<<a[i][j];
cout<<endl;
}
}
int** b=new int*[5];
for (int i=0; i<5; i++)