本文主要介绍相关资料中关于C/C动态数组创建的详细讲解实例。希望这篇文章能帮助你掌握这个功能,有需要的朋友可以参考一下。
C/C++ 动态数组的创建的实例详解
在C语言中,二维动态数组主要是通过指针方法建立的,以建立一个整数二维数组为例:
#includeiostream
#includestring
# includemalloc.h
使用命名空间std
int main(int argc,char **argv)
{
///*int a[2][3]={{1,2,3},{4,5,6 } };
//coutsizeof(a 1)endl;*/
//int a=4;
//int * * PP;
//PP=(int * *)malloc(sizeof(int *)* a);
//int aa[5][1]={1,2,3,4,5 };
//返回0;
int列,行;Cout '输入二维数组的行数和列数' endl
cinrowcolumn
int * * array
array=(int * *)malloc(sizeof(int *)* row);
for(int I=0;我!=行;我)
array[I]=(int *)malloc(sizeof(int)* column);
Cout '输入二维数组' endl
for(int j=0;j!=行;j)
{ for(int k=0;k!=列;k){ cinarray[j][k];} }
cout输入的二维数组“is”endl;
for(int j=0;j!=行;j)
{ for(int k=0;k!=列;k)
{ cout array[j][k]' ';}
coutendl}
//释放空间
for(int I=0;我!=行;我)
free(array[I]);
自由(数组);
返回0;
}
动态创建一维数组
int len
' Cout '输入一维数组的大小:' endl
cinlen
int * p=new int[len];
Cout '输入用空格分隔的元素!'endl
int val,I=0;
for(I=0;我!=len我)
{ cinval
p[I]=val;
}
“Cout”输出一维数组:“endl
for(I=0;我!=len我)
{
coutp[I]“”;
}
coutendl
二维数组的动态分配
int main(int argc,char **argv)
{
int列,行;
Cout '输入二维数组的行数和列数' endl
cinrowcolumn
int * * array
//array=(int * *)malloc(sizeof(int *)* row);//方法1
array=new int *[row];
for(int I=0;我!=行;我)
//array[I]=(int *)malloc(sizeof(int)* column);//方法1
array[I]=new int[column];
Cout '输入二维数组' endl
for(int j=0;j!=行;j)
{ for(int k=0;k!=列;k){ cinarray[j][k];} }
cout输入的二维数组“is”endl;
for(int j=0;j!=行;j)
{ for(int k=0;k!=列;k)
{ cout array[j][k]' ';}
coutendl}
//释放空间
for(int I=0;我!=行;我)
free(array[I]);
自由(数组);
返回0;
}
c在结构中动态创建一个数组,并创建一个动态结构数组。
让我们来看看这个例子!
int main(int argc,char* argv[])
{
int n,I,m,j;
结构测试
{
int * array
};
test * testarray
cinnm
testarray=新测试[m];
for(I=0;im;我)
{
testarray[i]。array=new int[n];
}
for(I=0;im;我)
{
for(j=0;jn;j)
{
testarray[i]。array[j]=I j;
}
}
for(I=0;im;我)
{
for(j=0;jn;j)
{
coutestarray[I]。array[j];
}
coutendl
}
返回0;
}
大意是老师形成一个结构的数组,然后在每个元素里声明一个动态数组!
就是先实例化,然后在实例化的元素中声明一个动态数组!
你可以在里面填东西来测试!
如有任何问题,请留言或与本站社区讨论。感谢阅读,希望能帮到你。感谢您对本站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。