C語言中矩陣定義問題
阿新 • • 發佈:2019-01-06
C語言在進行矩陣運算的時候可以按照下邊來定義
typedef struct Matrix
{
double **p;
int rows;
int cols;
} Matrix;
向量可以定義成下式
typedef struct Vector
{
double *p;
int len;
} Vector;
這樣可以包括所有維數的向量和矩陣。
要在初始化的時候給矩陣和向量申請空間,不然為空會報錯,在申請空間時定義函式
void initialMatrix(Matrix * A)
{
A->p = (double**)malloc(A->rows * sizeof(double*));
for (int i = 0; i < A->rows; i++)
{
A->p[i] = (double*)malloc(A->cols * sizeof(double));
}
}
void initialVector(Vector * A)
{
for (int i = 0; i < A->len; i++)
{
A->p = (double*)malloc(A->len * sizeof(double));
}
}
使用完要對空間進行釋放
void freeMatrix(Matrix * A)
{
for (int i = 0; i < A->rows; i++)
{
free(A->p[i]) ;
}
free(A->p);
}
void freeVector(Vector * A)
{
free(A->p);
}