Function Nmae | Description |
---|---|
malloc() | 按需求分配指定大小的内存,如果空间不够,返回void 数据类型, 或者NULL |
calloc() | 分配一块指定大小的空间并且初始化为0,如果空间不够,返回NULL |
feallloc() | 改变之前分配的大小,如果新的地址比之前的大,多出来的那一部分没有被初始化,之前所分配的内存其中内容也不变,反之,新的大小里面的内容不变 |
free() | 释放一块内存,这块内存的首地址作为参数传递给函数 |
举个例子,求平均分。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int numgrades, i, sum;
int *grades;
printf("\nEnter the number of grades to be processed: ");
scanf("%d", &numgrades);
/* here is where the request for memory is made */
grades = (int *) malloc(numgrades * sizeof(int));
/* here we check that the allocation was satisfied */
if (grades == (int *) NULL)
{
printf("nFailed to allocated grades array\n");
exit(1);
}
for (i = 0; i < numgrades; i++)
{
printf(" Enter a grades: ");
scanf("%d", &grades[i]);
}
printf("\nAn array was created for %d integers", numgrades);
printf("\nThe average score you entered are:\n");
for (i = 0; i < numgrades; i++)
{
sum += grades[i];
}
printf(" %d\n", sum/numgrades);
system("pause");
free(grades);
return 0;
}