|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我希望是运行之后,对M, N, P进行scanf函数赋值, 之后M, N, P有值了,进而根据M, N, P的值进行分配空间
但是还是报错了。。。
既然是动态运行,不可以运行之后再赋值给M, N, P吗?进而后面开辟空间。
要是已经固定了M, N, P的值,算哪门子的动态分配空间。
我是不是哪里出错了,求大神提出解决办法
- #include <stdio.H>
- int main()
- {
- int i = 0;
- int j = 0;
- int m,n;
- //定义动态二维数组
- double ** matrix;
- //输入矩阵大小 M * N
- printf("Input the size of matrix M * N:\n");
- //scanf 格式是%d,%d,因此输入时请用逗号隔开,比如说 5,10
- scanf("%d,%d",&m,&n);
- //二维数组动态分配内存的方法
- //先 new double * [m], 分配m个 double *
- matrix = new double *[m];
- //再为每一个 double * 分配 n 个 double
- for(i = 0 ; i < m ; i ++)
- {
- matrix[i] = new double[n];
- }
-
- //输入数据
- printf("Input %d * %d number:\n",m,n);
- for(i = 0 ; i < m ; i ++)
- {
- for(j = 0 ; j < n ; j ++)
- {
- scanf("%lf",&matrix[i][j]);
- }
- }
-
- //输出数据
- for(i = 0 ; i < m ; i++)
- {
- for(j = 0 ; j < n ; j++)
- {
- printf("%lf,",matrix[i][j]);
- }
- printf("\n");
- }
- //释放每一个double *
- for(i = 0 ; i < m ; i++)
- {
- delete [] matrix[i];
- }
- //释放double **
- delete [] matrix;
- return 0;
- }
复制代码
|
|