C语言中动态矩阵是常用的数据结构,可以通过结构体和malloc函数实现。代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef double DATA_TYPE;
typedef struct MATRIX_STRUCT *ptr_matrix;
struct MATRIX_STRUCT
{
int row;
int col;
DATA_TYPE *data_ptr;
};
void creat_matrix(ptr_matrix a)
{
for(int i=0;i<a->row;i++)
{
for(int j=0;j<a->col;j++)
{
*(a->data_ptr+i*a->col+j)=(DATA_TYPE)(i+j);
}
}
}
void print_matrix(ptr_matrix a)
{
for(int i=0;i<a->row;i++)
{
for(int j=0;j<a->col;j++)
{
printf("%f ",(double)*(a->data_ptr+i*a->col+j));
}
printf("\n");
}
}
int main()
{
ptr_matrix a=malloc(sizeof(struct MATRIX_STRUCT));
a->row=4;
a->col=5;
a->data_ptr=malloc(sizeof(DATA_TYPE)*(a->row*a->col));
creat_matrix(a);
print_matrix(a);
free(a->data_ptr);
free(a);
return 0;
}