程序很简单,重要的是二维指针的动态分配内存
type **Matrix ;//row为行,col为列
Matrix=(type **) malloc(row*sizeof(type *)) ;
for(int i=0; i<row; i++)
Matrix[i] = (type *)malloc(col * sizeof(type ));
类似数组a[2][3],他一共两行,每一行有3个元素,所以为他先分配两行内存,然后每一行再分配3列内存
Matrix类型是type**,先为它分配row行内存,内存类型与Matrix一样
Matrix=(type**) malloc(rowsizeof(type))
每一行分配col列内存,内存类型与Matix[i]一样,也就是type*
Matrix[i] = (type*)malloc(col * sizeof(type ));
其中一个功能的结果:
下面是完整代码
#include <iostream>
#include <malloc.h>
#include <stdio.h>
using namespace std;
typedef struct
{
//结构体
int row,col;
//二维指针,目的是动态分配内存
float **matrix;
} Matrix;
typedef struct
{
char *name;
char *number;
} Student;
Matrix CreateMatrix()
{
Matrix m;
int row,col;
cout << "输入行数与列数:" << endl;
cin >> row >> col;
float **enterMatrix ;
enterMatrix=(float**) malloc(row*sizeof(float*)) ;
for(int i=0; i<row; i++)
enterMatrix[i] = (float *)m