首页 > 其他 > 详细

动态申请二维数组

时间:2014-04-16 11:45:19      阅读:549      评论:0      收藏:0      [点我收藏+]

以下是动态申请a[m][n]的源代码


代码一:

/* 
	编译器:DEV C++
*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int **a;
	int i,j,m,n;
	
 	scanf("%d%d",&m,&n);	
 	
	a = (int **)malloc(sizeof(int *)*m);
	for (i=0;i<m; i++){
		a[i] = (int *)malloc(sizeof(int)*n);
	}
	
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			a[i][j]=i*j+10;
			printf("a[%d][%d]:%d  ",i,j,a[i][j]);
		}
		printf("\n");	
	}   	
	
	return 0;
}



代码二(对代码一进行了简化):

/* 
	编译器:DEV C++
*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int m,n;
	int i,j;
	scanf("%d%d",&m,&n);
	//二维数组也是线性的存储结构 
	int (*a)[n]=(malloc(sizeof(int)*m*n));
	
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			a[i][j]=i*j+10;
			printf("a[%d][%d]:%d  ",i,j,a[i][j]);
		} 
		printf("\n");	
	}

	return 0;
}


程序运行结果截图:

bubuko.com,布布扣



注意:

       不同的编译器对语法要求的严格性是不一样的,例如有的编译器在编译期时要求二维数组的第二维的值要是一个定值有的则没有要求,有的编译器则对强制转换不怎有要求的有的则要求比较严,注意对不同的编译器不同对待,“以不变应万变”。

动态申请二维数组,布布扣,bubuko.com

动态申请二维数组

原文:http://blog.csdn.net/user_longling/article/details/23793089

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!