viewed 15488 times and licensed 292 times
Dynamically allocates a zero-based 2D block (matrix) of data.
View version details
Contents  |
|
Interface
#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. |
Function Documentation
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
a[1][4] === a[2][0].
The opposite of this function is
free_matrix .
Example
#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
Note:
- You should always use free_matrix to de-allocate memory allocated to this structure.
Parameters:
| Rows | The 2nd dimension of a matrix. |
| Columns | The 1st (primary) dimension of a matrix. |
Authors:
- Will Bateman (February 2005)
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
matrix Parameters:
| Matrix | is the 2D data structure to delete. |
Authors:
- Will Bateman (February 2005)
Page Comments
You must login to leave a messge
Last Modified: 18 Oct 07 @ 17:07 Page Rendered: 2009-07-01 20:57:53