C语言 动态创建二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; 
}

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

以上是关于C语言 动态创建二维数组的主要内容,如果未能解决你的问题,请参考以下文章

malloc动态创建二维数组(C语言)

C语言如何给用函数二维数组动态赋值

c语言对二维数组的某一行赋值 如u8 a[20][20]; 仅对a[10]这一行赋值

c语言中怎样实现对二维数组元素进行赋值并输出。

C语言怎么定义一个二维数组可以使每行的输入长度任意

c语言 动态数组