C语言 动态创建二维数组

/*C语言 如何动态创建二维数组
转化为一维数组申请数组,创建和释放都比较简单
*/
#include <stdlib.h> 
#include <stdio.h>
#include <malloc.h> 

#define RANK  10
#define COLUMN 7
int main() 
{ 
    int i,j; 
    
    int (*p)[COLUMN]; 
    
    //动态生成二维数组,指定列数为COLUMN,如果想改,自己该里面 
    //的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int)); 
    p=(int (*)[COLUMN])malloc(RANK*COLUMN*sizeof(int)); //动态申请n行COLUMN列的二维数组
    
    for(i=0;i<RANK;i++) 
    for(j=0;j<COLUMN;j++) 
    p[i][j]=i*j; 
    
    for(i=0;i<RANK;i++) 
    { 
    for(j=0;j<COLUMN;j++) 
    printf("%d,",p[i][j]); 
    
    printf("\n"); 
    } 
    free(p); 
    
    system("pause");
    return 0; 
}

当然,还有第二种方法,这里就不测试了,只是为了工程实用性,哈哈

posted @ 2016-01-27 10:15  平常心,平常心  阅读(4567)  评论(0编辑  收藏  举报