求教矩阵初始化
程序代码:
#include<iostream> #include <ctime> using namespace std; typedef struct A{ int i; int j; int **k; }max; void init(int q ,int w, A &T) { T.i=q; T.j=w; int i,n=0; T.k=(int**)malloc(w*sizeof(int*));//*申请空间*// for(i=0;i<w;i++) { T.k[i]=(int*)malloc(q*sizeof(int)); } for(i=0;i<q;i++) { for(n=0;n<w;n++) { T.k[i][n]=rand()%100; } } } void printf( int q, int w, A &T) { int a,b,i=0; for(a=0; a<T.i; a++) { for(b=0;b<T.j;b++) { cout<<T.k[a][b]<<"\t"; } cout<<endl; } } void main() { srand(time(NULL)); A max; int q,w,e,r; cout<<"行数"<<endl; cin>>q; cout<<"列数"<<endl; cin>>w; init (q,w,max); printf(q,w,max); }
q是行数,w是列数,我想输入行数,列数然后输出随机数矩阵,编译时没问题,但是,如果输入的q大于w时就出问题,q小于w就没事,应该是init这出了问题,但是就是不知道哪里出问题。