存储空间的动态分配与释放
1,关于malloc()函数
函数调用的一般形式:
(类型标识符*)malloc(size)
-
malloc()函数的功能是在内存动态分配一个长度为size的一个连续空间,含数返回值是该区域的首地址。
-
(类型标识符*)是强制类型转换。因为函数返回的指针的是五类型的,用户根据存储空间的用途把函数调用返回的指针强制转换为相应的类型。
-
size是一个无符号数,单位是字节。
2,calloc()函数
函数调用的一般格式:
(类标识符*)calloc(n,size)
-
calloc()函数的功能是在内存动态分配n个长度为size的连续空间,函数返回值是该区域的首地址。
-
为正整数。
3,free()函数
函数调用一般形式:
Free(指针变量名);
代码
#include"iostream"
using namespace std;
float average(int *p,int n)
{
int i;
float ave=0;
for(i=0;i<n;i++)
ave+=*(p+i);
return ave/n;10 11 }
int main()
{
int i,n,*p;
cin>>n;
p=(int*)malloc(n*sizeof(int));//或p=(int*)calloc(n,sizeof(int));
for(i=0;i<n;i++)
scanf("%d",p+i);
printf("%.2f\n",average(p,n));
free(p);
}