当前位置:首页 > 内存 > 正文

一维数组动态分配内存

  • 内存
  • 2024-06-10 09:13:00
  • 7065

一、C语言可以实现为一维数组动态分配内存吗?能。。
一个例子是:
#include
#include
voidmain(void)
{
intlen,i,*p;
printf("输入要保存的元素个数:");
scanf("%d",&len);//输入长度构建动态一维数组
p=(int*)malloc(sizeof(int)*5);
for(i=0;iscanf("%d",(p+i));//p+i等价于&p[i];
//将动态一维数组p的长度增加到6,并返回第6个元素为100;
realloc(p,sizeof(int)*6);//realloc再次增加或减少一维数组的长度;
p[5]=99;
printf("输出内容:\n");
for(i=0;i<=len;++i)
printf("%-5d",p[i]);//p[i]等价于*(p+i);
printf("\n");
}


二、c加加,用动态内存分配方式,声明一个长度为10的一维数组,实现对数组元素的输入输出,要求使用函数#include
#include
#defineN10
int*f1(intn){整数*p;p=(int*)malloc(n*sizeof(int));返回p;}
voidinput(int*a,intn){inti;for(i=0;ivoid输出(int*a,intn){inti;
for(i=0;iprintf("\n");
}
voidmain(){int*a;
a=f1(N);
if(a!=NULL){
输入(a,N);
输出(a,N);
自由(a);
}
}
三、C++动态分配保存十个成绩数组的存储空间,并对成绩进行输入,求出最高分并输出,用ne问题还没有结束。一定还有更多的疑问。要动态分配内存,请使用malloc分配10个int空间。int*p=malloc(10,sizeof(int));看起来像这样,但是没有编辑器,我什至不记得参数的数量。然后在for循环中我们执行cin10次并将它们按顺序插入到数组p中,然后我们定义一个整数变量intmax=*p[0],然后在for循环中我们比较数组末尾的数字和交换值。如果max大于max,我们得到最大值,然后打印“max”。