如何解答以下关于getMemory的问题

img

int*getMemory(intn);
intmainO{
     intn,add;
     cout<<”input a num’<<endl;
     cin>>n;
    add=getMemory(n);//问题1
     cout << add <<”...”<<*add<<endl:
     *add=1://问题3
    cout <<add <<”...“<<*add<<endl;
     free(add);add=NULL://问题4
     return 0int*getMemory(intn)
    //问题2
    int*p=(int*)malloc(n*sizeof(n));
     returnp
问题1:此函数实现了什么功能
2:(int*)是否必要
3:此句是否成功?
4:这一行是否需修改?否--解释作用?是--如何修改?
5: 输出结果大概什么样子

1.申请n个整数大小的内存,并返回内存首地址
2.有必要,因为malloc的返回值是void *类型,需要强制转换为int*类型
3.能成功
4.否。释放malloc申请的内存,并把指针置0