В своем коде я собственно задаю функции int** matrix_initialization(int n, int m) , у которой кстати тип указателя на указатель (**) (это вообще правильно? я так поставил потому что были ошибки какие-то у компилятора), параметры как длина строки и длина столбцов, в функции этой же выделяю память под нее и потом с помощью циклов задаю случайные значения.
В следующей функции int print_matrix(int n1, int n2, int** a) (насчет которой я вообще не уверен), я задаю параметры как длина строки, длина столбцов, и некоторый указатель на указатель
** int a;
И я вот не понимаю, я правильно вообще поставил эти параметры? У меня ошибка есть, что функция print_matrix должна возвращать какое-то значение, а какое значение должна она возвращать? Это же по идее функция, которая должна просто печатать матрицу, или я чето не понимаю?
Как в двух отдельных функциях инициализировать матрицу и потом распечатать её ??????
У меня получился такой код:
#include
#include
#include
#include
int** matrix_initialization(int n, int m)
{
// Выделение памяти
int** matrix = NULL;
matrix = (int**)malloc(n * sizeof(n));
// Проверки
if (matrix != NULL)
{
if (matrix != NULL)
{
// Выделение памяти
for (int i = 0; i < m; i++)
{
*(matrix + i) = (int*)malloc(m * sizeof(m));
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
matrix[i][j] = rand() % 20 - 5;
}
}
}
}
return matrix;
}
int print_matrix(int n1, int n2, int** a)
{
for (int i = 0; i < n1; i++)
{
for (int j = 0; j < n2; j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
}
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int N, M, **b;
printf("Введите размеры матрицы: ");
scanf_s("%d %d", &N, &M);
b = matrix_initialization(N, M);
print_matrix(N, M, **b);
}