C语言结构体编程题,求助大佬!
#include <stdio.h>
#include <malloc.h>
// 编写函数int *DefineArray(int n),其功能是利用内存分配函数动态创建n个整数数据的动态数组:
int *DefineArray(int n) {
int *p = (int *)malloc(n * sizeof(int));
if(p == NULL) printf("内存已经耗尽!\n");
return p;
}
// 编写函数void FreeArray(int *p),其功能是释放p指向的存储空间。
void FreeArray(int *p) {
if(p) free(p);// 如果p为NULL,则释放时会报错
}
int main() {
int i,n,*a;
printf("请输入学生人数:");
scanf("%d",&n);
if(a = DefineArray(n)) {
printf("请输入%d个学生的成绩\n",n);
for(i = 0; i < n; ++i) scanf("%d",&a[i]);
}
for(i = 0; i < n; ++i) printf("%02d\t%d\n",i + 1,a[i]);
FreeArray(a);
return 0;
}