#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i;
int *parry;
printf("请输入该整型数组有几个元素\n");
scanf_s("%d",&n);
printf("输入成功\n");
printf("即将使用malloc申请空间\n");
parry = (int *)malloc(n*sizeof(int));
if(parry == NULL)
{
printf("开辟空间失败\n");
}
else
{
printf("空间申请成功\n");
}
for(i=0;i<n;i++)
{
printf("请输入第%d个学生的成绩\n",i);
scanf_s("%d",&parry[i]);
}
for(i=0;i<n;i++)
{
printf("第%d个学生的成绩:%d\n",i,parry[i]);
}
free(parry);
parry = NULL;//free只是告诉操作系统那段空间你可以自己用了,我已经用完了。
//所以在系统没有用之前,那段空间的数据还会没有变的。很多数据恢复的原理都是这样。
//你把一个东西删除了以后只是将那段空间标记为可用,并没有清0.所以,我们删除指针之后都会把它值为NULL
if(parry == NULL)
{
printf("空间释放成功\n");
}
else
{
printf("空间释放失败\n");
}
return 0;
}
其他写法
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int *parry=(int *)malloc(3*sizeof(int));
for(i=0;i<3;i++)
{
printf("请输入第%d个学生的成绩\n",i);
scanf_s("%d",&parry[i]);
}
for(i=0;i<3;i++)
{
printf("第%d个学生的成绩:%d\n",i,*parry);
parry++;
}
return 0;
}