2026-04-09 15:03:00 +02:00

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);
}