Trebam pomoć s jednim primjerom iz knjige "Demistificirani C++" vezano uz korištenje polja kao argumenata.
Primjer ide ovako:
#include<iostream>
#include<iomanip>
using namespace std;
void ispisiMatricu(float **m, int redaka, int stupaca) {
for (int r = 0; r < redaka; r++) {
for (int s = 0; s < stupaca; s++)
cout << setw(10) << ((float*)m)[r*stupaca+s];
cout << endl;
}
}
int main() {
int redaka = 2;
const int stupaca = 3;
float (*matrica)[stupaca] = new float[redaka][stupaca];
matrica[0][0] = 1.1;
matrica[0][1] = 1.2;
matrica[0][2] = 1.3;
matrica[1][0] = 2.1;
matrica[1][1] = 2.2;
matrica[1][2] = 2.3;
ispisiMatricu((float**)matrica, redaka, stupaca);
return 0;
}
Ono što me zanima je zašto je u deklaraciji funkcije matrica, odnosno pokazivač na matricu naveden bez zagrada => "float **m, int redaka...", a kod poziva funkcije iz glavnog dijela oznake dereferenciranja se nalaze u zagradi zajedno sa tipom => "(float**)matrica, redaka..."