dynamic cube matrix lib (depends on input & output lib)

main
Stepan Pilipenko 1 year ago
parent f096c0613a
commit 3667df3161

@ -0,0 +1,52 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "my_funcs.h"
int crete_cube_matrix(void *** matrix, unsigned int n, unsigned int type_size)
{
int error_code = 1;
*matrix = calloc(n, sizeof(void*));
if (*matrix)
{
for (unsigned int i = 0; i < n; i++)
{
(*matrix)[i] = calloc(n, type_size);
if (!(*matrix)[i])
{
error_code = 0;
break;
}
}
}
else
error_code = 0;
return error_code;
}
void free_cube_matrix(void *** matrix, unsigned int n)
{
for (unsigned int i = 0; i < n; i++)
free((*matrix)[i]);
free(*matrix);
}
int scan_array_matrix(void *** matrix, unsigned int n, char * specifiere)
{
int scan_el_cnt = 0;
for (unsigned int i = 0; i < n; i++)
scan_el_cnt += scan_array((*matrix)[i], n, specifiere);
return scan_el_cnt;
}
void print_array_matrix(void *** matrix, unsigned int n, char * type, char * specifiere)
{
for (unsigned int i = 0; i < n; i++)
{
print_array((*matrix)[i], n, type, specifiere);
printf("\n");
}
}

@ -0,0 +1,57 @@
#ifndef dynamic_h
#define dynamic_h
/*
Алгоритм выделения памяти для динамической матрицы
Входные значения:
matrix - указатель на матрицу
n - размер матрицы
type_size - размер одного элемента
Возвращаемое значение:
0 - ошибка выделения памяти
1 - нет ошибки
*/
int crete_cube_matrix(void *** matrix, unsigned int n, unsigned int type_size);
/*
Алгоритм освобождения памяти для динамической матрицы
Входные значения:
matrix - указатель на матрицу
n - размер матрицы
*/
void free_cube_matrix(void *** matrix, unsigned int n);
/*
Алгоритм ввода матрицы
Входные данные:
matrix - указатель на матрицу
n - размер матрицы
specifiere - спецификатор типа
Список спецификаторов:
с - char
d - int
f - float
ld - long
lf - double
Возвращаемые значения:
количество считанных значений
*/
int scan_array_matrix(void *** matrix, unsigned int n, char * specifiere);
/*
Алгоритм вывода динамической матрицы
Входные данные:
matrix - указатель на матрицу
n - размер массива
type - спецификатор типа
Список спецификаторов:
с - char
d - int
f - float
ld - long
lf - double
specifiere - спецификатор формата вывода
*/
void print_array_matrix(void *** matrix, unsigned int n, char * type, char * specifiere);
#endif
Loading…
Cancel
Save