用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