您的位置:首页 > 其它

动态内存分配

2014-04-07 23:29 148 查看
动态分配以及destroy内存的函数
Function NmaeDescription
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;
}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内存分配