C语言动态生成二维数组

# 动态创建二维数组示例

#include "stdlib.h"
#include "stdio.h"
#include <malloc.h>

int main()
{
    int i,j;
    int n; // 这个是需要指定二维数组的行数
    int (*p)[10];

    scanf("%d",&n);// 取得行数

    // 动态生成二维数组,指定列数为10,如果想改,自己修改里面的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int));

    p=(int (*)[10])malloc(n*10*sizeof(int)); //动态申请n行10列的二维数组

    for(i=0;i<n;i++)
        for(j=0;j<10;j++)
            p[i][j]=i*j;

    for(i=0;i<n;i++)
    {
        for(j=0;j<10;j++)
            printf("%d ",p[i][j]);
        
        printf("\n");
    }
    free(p);

    return 0;
}

posted @ 2013-07-12 16:20  emanlee  阅读(5141)  评论(0编辑  收藏  举报