60 lines
1.0 KiB
C++
60 lines
1.0 KiB
C++
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "matrix.h"
|
|
|
|
int ***build_matrix(int nx, int ny, int nz)
|
|
{
|
|
int ***matrix;
|
|
matrix = (int ***)malloc(nz * sizeof(int **));
|
|
if(!matrix)
|
|
return 0;
|
|
|
|
for (int z = 0; z < nz; z++)
|
|
{
|
|
matrix[z] = (int **)malloc(ny * sizeof(int *));
|
|
if(!matrix[z])
|
|
return 0;
|
|
|
|
for (int y = 0; y < ny; y++)
|
|
{
|
|
matrix[z][y] = (int *)malloc(nx * sizeof(int));
|
|
if(!matrix[z][y])
|
|
return 0;
|
|
|
|
for (int x = 0; x < nx; x++)
|
|
{
|
|
matrix[z][y][x] = (z + 1) * 100 + (y + 1) * 10 + x + 1;
|
|
}
|
|
}
|
|
}
|
|
return matrix;
|
|
}
|
|
|
|
void print_matrix(int ***matrix, int nx, int ny, int nz)
|
|
{
|
|
for (int z = 0; z < nz; z++)
|
|
{
|
|
for (int y = 0; y < ny; y++)
|
|
{
|
|
for (int x = 0; x < nx; x++)
|
|
{
|
|
printf("%i ", matrix[z][y][x]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
void free_matrix(int ***matrix, int ny, int nz)
|
|
{
|
|
for (int z = 0; z < nz; z++)
|
|
{
|
|
for (int y = 0; y < ny; y++)
|
|
{
|
|
free(matrix[z][y]);
|
|
}
|
|
free(matrix[z]);
|
|
}
|
|
free(matrix);
|
|
}
|