标签:内存
1.堆内存管理
malloc函数
—分配变量
int *p;
p = (int *)malloc(sizeof(int));
—分配数组
int *p;
p = (int *)malloc(sizeof(int) * 10);
p[5] = 10;
calloc函数与malloc作用相同,只是会把分配到的所有字节都清0.
int main(void)
{
char *str = NULL;
str = (chat *)calloc(10,sizeof(char));
strcpy(str, “Hello”);
printf(“String is %s\n”,str);
return 0;
}
realloc 函数
1.先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回
如果空间不够,先按照newxize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配
的内存区域首地址
free函数:用于释放(回收),从堆中分配的空间(内存)
int main(void)
{
char *str = NULL;
str = (char *)calloc(10,sizeof(char));
strcpy(str,“Hello”);
printf(“String is %s\n”,str);
free(str);
return 0;
}
本文出自 “冯宋林的博客” 博客,谢绝转载!
标签:内存
原文地址:http://fengsonglin.blog.51cto.com/9860507/1685329