Dynamically allocates a zero-based 2D block (matrix) of data.

You're viewing an older version of this page (#237). View the current version.

View versions (1)

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

Ordering of data
Ordering of data

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 15

Parameters

Rows
The 2nd dimension of a matrix.
Columns
The 1st (primary) dimension of a matrix.

You should always use <em> free_matrix </em> to de-allocate memory allocated to this structure.

GPL Licence — free for non commercial use. See Licence details.

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

Matrix
is the 2D data structure to delete.
Author

Will Bateman (February 2005)