Я пытаюсь создать библиотеку, включающую некоторые функции, такие как создание матрицы, добавление, добавление, преобразование и инвертирование матрицы, и мне нужно использовать двойной указатель
Вначале я пишу этот код для назначения матрицы, но, похоже, он не работает, и я не знаю, в чем проблема
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
static double P[4][4]={ { 1, 0, 0, 0},
{ 0, 1, 0, 0},
{ 0, 0, 1, 0},
{ 0, 0, 0, 1}
};
double **P_M;
void show_matrix(int n,int m,double **matrix)
{
int i,j;
printf("\n The matrix is:\n");
for (i=0;i<n;i++)
{
for (j=0;j<m;j++);
printf(" \t",&matrix[i][j]);
printf("\n");
}
}
double matrix( int n, int m, double **matrix)
{
int row;
/* allocate N 'rows'. */
matrix = malloc( sizeof( double* ) * n );
/* for each row, allocate M actual doubles. */
for( row = 0; row < n; row++ )
matrix[ row ] = malloc( sizeof( double ) * m );
}
void main()
{
int i, j;
matrix(4,4,P_M);
for(i=1; i<5; i++)
for(j=1; j<5; j++)
P_M[i][j] = P[i-1][j-1];
//show_matrix(4,4,P_M);
}