Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

Buna!
Daca am o structura de tip matrice si folosesc tipul in subprograme de ce mai trebuie sa folosesc operatrul &? Nu se aplica principiul, ca numele matricii e pointer la primeul element, ca si cand ar fi de tip int?

void citesteMat(Matrice& a) {
int i, j;
cout << "Dati matricea:\n";
cin >> a.m >> a.n;
for (i = 0; i < a.m; i++)
for (j = 0; j < a.n; j++)
cin >> a.elem[i][j];
}

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
1

Toate structurile transmise prin valoare sunt copiate.

Daca iti definesti tipul asa, nu ti-ar mai trebui referinta:

typedef int[...][...] Matrice;

Dar atunci nu ai mai putea intoarce dimensiunile.

Poti sa faci putina magie cu C++11 si sa iti definesti o matrice asa(si nu ai mai avea nevoie de referinta de la matrice):

typedef pair<reference_wrapper<size_t> , reference_wrapper<size_t> > Dimensiuni;

typedef pair<Dimensiuni, int**> Matrice;

Dar dupa cum observi s-ar complica cu mult lucrurile


alex001super: salut cinevafaranume ma poți ajuta la un algoritm mai dificil..
Alte întrebări interesante