读书人

c中如何用malloc动态申请二维数组

发布时间: 2012-06-08 12:55:24 作者: rapoo

c中怎么用malloc动态申请二维数组
c中怎么用malloc动态申请二维数组

[解决办法]
二维数组其实也是线性的存储形式,一般是按行存储(也有按列存储的)

int a[2][2];
实际上就是 a[0][0] a[0][1] a[1][0] a[1][1]

所以你用malloc分配可以这样写 malloc(sizeof(int)*2*2);
[解决办法]
没有实际的二维数组的啊 二维数组就是连续的一维数组
[解决办法]
申请一个5行3列的整型数组。

C/C++ code
    int **a;    int i;    a = (int **)malloc(sizeof(int *)*5);    for (i=0; i<5; i++)        a[i] = (int *)malloc(sizeof(int)*3);
[解决办法]
探讨
二维数组其实也是线性的存储形式,一般是按行存储(也有按列存储的)

int a[2][2];
实际上就是 a[0][0] a[0][1] a[1][0] a[1][1]

所以你用malloc分配可以这样写 malloc(sizeof(int)*2*2);//int a[2][2];


[解决办法]
int (*p)[10];
p=(int(*)[10])malloc(sizeof(int)*20);
[解决办法]
探讨
申请一个5行3列的整型数组。


C/C++ code int **a;
int i;

a = (int **)malloc(sizeof(int *)*5);
for (i=0; i<5; i++)
a[i] = (int *)malloc(sizeof(int)*3);

[解决办法]
当然是释放一次了....
[解决办法]
3楼的方法释放一次不行吧
[解决办法]

学习了……
[解决办法]
这个问题好哦!
谁能详细解释下?

读书人网 >C语言

热点推荐