怎么用malloc函数分配这样大小的数组。
从键盘手动输入一个二维数组的大小,比如说3*4的,int类型的。怎么用malloc函数分配这样大小的数组。用c语言该怎么写?比如C[3][4],返回这个二维数组的首地址...
从键盘手动输入一个二维数组的大小,比如说3*4的,int类型的。
怎么用malloc函数分配这样大小的数组。
用c语言该怎么写?
比如C[3][4],
返回这个二维数组的首地址 展开
怎么用malloc函数分配这样大小的数组。
用c语言该怎么写?
比如C[3][4],
返回这个二维数组的首地址 展开
3个回答
展开全部
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
}
这是采用这种两级指针的方法进行分配
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
}
这是采用这种两级指针的方法进行分配
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int c[3][4];
c = (int *) malloc(sizeof(int) * 3 * 4);
// free
free(c);
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c = (int *) malloc(sizeof(int) * 3 * 4);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询