C语言动态生成二维数组

时间:2023-03-08 19:00:24
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;
}