Ti ho detto che devi allocare la memoria dinamicamente, qui c'è un esempio
codice:
#include <iostream>
using namespace std;
void inizializza_matrice(int *mat, int r, int c);
void stampa_matrice(int *mat, int r, int c);
int main() {
int r, c;
do {
cout << "Inserire il numero di righe e colonne (>=0)" << endl
<< "Righe: ";
cin >> r;
cout << "Colonne: ";
cin >> c;
} while(c < 0 || r < 0);
int *mat = new int[r*c];
inizializza_matrice(mat, r, c);
cout << endl;
stampa_matrice(mat, r, c);
delete[] mat;
return 0;
}
void inizializza_matrice(int *mat, int r, int c) {
cout << endl << "Inserire gli elementi della matrice" << endl;
for(int i = 0; i < r; i++) {
for(int j = 0; j < r; j++) {
cout << "(" << i+1 << ", " << j+1 << "): ";
cin >> mat[i*c+j];
}
}
}
void stampa_matrice(int *mat, int r, int c) {
for(int i = 0; i < r; i++) {
for(int j = 0; j < r; j++) {
cout.width(4);
cout << mat[i*c+j];
}
cout << endl;
}
}