关于二维动态数组的问题,新手求助
我自己写了一个程序 想在类Matrix中建立一个二维的动态数组,数组的大小依据main函数中的二维数组大小而定。因为相对一个方阵做一些处理 但在实际中方阵的大小是不确定的,因此希望可以做到动态的赋值。但是这个程序执行以后没有显示 一直没找出问题在哪 我以前的c基础就不好 希望老师们帮助~
#include <iostream>
#include <string>
#include<iomanip>
using namespace std;
class Matrix
{
public:
Matrix(int n,int* po)
{
int m=n;
int **p;
p=new int* [m];
for(int i=0;i<m;i++)
{
p[i]=new int[m];
for(int j=0;j<m;j++)
p[i][j]=po[i*m+j];
}
}
void show();
protected:
int m;
int **p;
};
void Matrix::show()
{for(int i=0;i<m;i++)
{
for(int j=0;j<m;j++)
cout<<setw(5)<<p[i][j]<<" ";
cout<<endl;
}
}
int main()
{
int a[4][4];
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
a[i][j]=i*10+j;
int *pp=&a[0][0];
Matrix m1(4,pp);
m1.show();
return 0;
}