Matrix
Dynamically allocates a zero-based 2D block (matrix) of data.
Interface
#include <codecogs/computing/array/matrix.h>
using namespace Computing::Array;
Overview
Dynamically allocates a zero-based 2D block of memory. This memory block is continuous, and is in column then row order

For example, with an allocation of the type:
float **a = matrix<float>(2,3);Then <tt>a[1][4] === a[2][0]</tt>.
The opposite of this function is <em> free_matrix </em>.
Example 1
#include <codecogs/computing/array/matrix.h>
int main()
{
// allocate some memory, 5 rows, 3 columns
int **A = Array::matrix<int>(5,3);
// initialize with some data
for(int j=0; j<5; j++)
for(int i=0; i<3; i++)
A[j][i] = i*j;
// convert to one-dimensional array
int *B = A[0];
for(int i=0; i<15; i++)
printf(" %d", B[i]);
// tidy up
Array::free_matrix(A);
}Output:
1 2 3 2 4 6 3 6 9 4 8 12 5 10 15Parameters
You should always use <em> free_matrix </em> to de-allocate memory allocated to this structure.
FUNCTION
free_matrix
Removes any dynamically allocated memory for a 2D structure from the stack. This function is usually used on data structures created using matrix<>, though it can also be used on other 2D types, so long as the memory is continuously allocated.
The opposite of this function is <em> matrix </em>
Parameters
Will Bateman (February 2005)