怎么用malloc函数分配这样大小的数组。

从键盘手动输入一个二维数组的大小,比如说3*4的,int类型的。怎么用malloc函数分配这样大小的数组。用c语言该怎么写?比如C[3][4],返回这个二维数组的首地址... 从键盘手动输入一个二维数组的大小,比如说3*4的,int类型的。
怎么用malloc函数分配这样大小的数组。
用c语言该怎么写?
比如C[3][4],
返回这个二维数组的首地址
展开
 我来答
tustnhs
2011-07-06 · TA获得超过1254个赞
知道小有建树答主
回答量:1084
采纳率:0%
帮助的人:685万
展开全部
int **buff;
buff = (int**)malloc(sizeof(int*)*x); =>分配一个int*的数组,其中有x个int*个指针
for(int i = 0; i < x; i++)
{
*(buff+i) = (int*)malloc(sizeof(int)*y); =>再分配每个int*指向的数组,每个数组里面有y个int
}

这是采用这种两级指针的方法进行分配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
icecoobe
2011-07-06 · TA获得超过1989个赞
知道小有建树答主
回答量:1058
采纳率:100%
帮助的人:1108万
展开全部
int c[3][4];
c = (int *) malloc(sizeof(int) * 3 * 4);

// free
free(c);
更多追问追答
追问
3,4是从键盘输入的
追答
int main()
{
int r; // Row
int c; // Column
cout>r;
cout>c;

// 创建二维动态数组
int i = 0;
int **p=new int*[r];
for(i=0;i>temp;
*(*(p+i)+j)=temp; // 寻址赋值
}
}
// 循环显示
cout<<"The dynamic array is "<<endl;
for(i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<*(*(p+i)+j)<<" "; // 寻址读取
}
cout<<endl;
}

// release
for(i=0;i<r;i++)
{
if(p[i] != NULL)
delete[] p[i];
}
delete[] p;
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apple021891
2011-07-07
知道答主
回答量:76
采纳率:0%
帮助的人:26.7万
展开全部
c = (int *) malloc(sizeof(int) * 3 * 4);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式