Newbie question: Right way of creating a matrix using the new operator?
Hi,
I'm trying to dynamically create a matrix, let's call it M, which can be accesed using the usual M[i][j] notation. That's it, it should behave as if I had declared it as a double M[5][5], except the size should be a variable rather than 5.
This is the simplest example:
Code:
#include <iostream.h>
void createMatrix(int size) {
double *M = new double[size*size]; // doesn't work :(
/*
// This does work, but is really awful... there's got to be a better way!
double **M = new double*[size];
for (int k = 0; k < size; k++)
M[k] = new double[size];
*/
// this MUST work:
for(int i = 0; i < size; i++)
for(int j = 0; j < size; j++)
M[i][j] = 3.141592; // whatever
delete[] M;
}
int main() {
int n;
cout << "Size of the matrix? ";
cin >> n;
createMatrix(n);
return 0;
}
Please, tell me there's a better solution that the horrible hack I did!!
:)