用C中的malloc函数作动态两维数组

来源:百度知道 编辑:UC知道 时间:2024/05/25 08:31:35
如题,该如何做?

#include "stdlib.h"

#include "stdio.h"

#include <malloc.h>

int main()
{

int i,j;

int (*p)[10];

//动态生成二维数组格式就是相当与p[10][10],如果想改,自己该里面
的参数,如果想定义n行2列就为:

//p=(int (*)[2])malloc(n*2*sizeof(int));

p=(int (*)[10])malloc(10*10*sizeof(int));

for(i=0;i<10;i++)

for(j=0;j<10;j++)

p[i][j]=i*j;

for(i=0;i<10;i++)

{

for(j=0;j<10;j++)

printf("%d,",p[i][j]);

printf("\n");

}
free(p);

return 0;

}

再还需要声明的一下,计算机中根本就没有多维数组的,所有的多维数组都是一维

数组格式化而来的.

比如说如果要定义2维数组,只要显示的说明第二维的大小,就可以从1维数组格式化到二维数组了!

你的意思是用malloc函数申请二维数组??
calloc就是申请二维数组的,何必用malloc呢!不过我可以给你个malloc的例子

char **buf = NULL; //二维数组
int x = 10, y = 10; //数组大小buf[x][y];
//分配空间
buf = ma