#include <codecogs/array/matrix.h>
using namespace Array;
| template<class T>T** | matrix (long Rows, long Columns)[inline] Dynamically allocates a zero-based 2D block (matrix) of data. | |
| template<class T>void | free_matrix (T** Matrix)[inline] Frees from memory a 2D block of dynamically allocated data. |
| template<class T>T**matrix( | long | Rows | |
| long | Columns | )[inline] |

Ordering of data
float **a = matrix<float>(2,3);Then a[1][4] === a[2][0]. The opposite of this function is free_matrix .
#include <codecogs/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 15
| Rows | The 2nd dimension of a matrix. |
| Columns | The 1st (primary) dimension of a matrix. |
| template<class T>voidfree_matrix( | T** | Matrix | )[inline] |
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 matrix | Matrix | is the 2D data structure to delete. |