Matrix multipliers - using a double pointer instead of an array

Hey,

I'm working on an openMP enabled matrix-matrix multiplier that will multiply two matrices, A and B, storing the result in C. I have been told to write it in C, of which I have no experience. Before I even begine to think about the omp options I have a few problems to overcome (actually I have many but these are my worst.)

Prob 1:

I need to use a double pointer to store the matrices instead of the following array based approach. (This is because I will not know what the matrix sizes will be at compile time.)

Code:

`double A[SIZE][SIZE], B[SIZE][SIZE], C[SIZE][SIZE];`

am I on the right track by using:

I believe this creates 3 pointers to doubles, but are they only single dimensions?? Do they need to be declared as> double **a ...?

Prob 2:

By using a double pointer I think I will need to use the malloc function to allocate the memory required.

Code:

`a = (double *)malloc(sizeof(double)*m*n);`

where m and n are the matrix dimensions. Is this correct?

I appreciate the help and I am sorry if this has been done before but I couldn't find it.

Thanks,

Colly Mitchell