此函数是否会释放下面代码中的in函数cleanProgram()分配的所有内存。malloc()createArray()
#include <stdio.h>
#include <stdlib.h>
typedef struct S_Array
{
int *arr;
int size;
}Array;
Array* createArray()
{
Array* a = (Array*)malloc(sizeof(Array));
printf("enter the size of array: ");
scanf("%d",&a->size);
a->arr = (int*)malloc(a->size*sizeof(int));
printf("enter the array elements: ");
for(int i=0; i<a->size; i++) {
scanf("%d",&a->arr[i]);
}
return a;
}
void cleanProgram(Array *a){
free(a->arr);
free(a);
}
void traverse(Array *a){
for(int i=0; i<a->size; i++){
printf("%d ",a->arr[i]);
}
}
int main()
{
Array* a = createArray();
traverse(a);
cleanProgram(a);
return 0;
}