码迷,mamicode.com
首页 > 其他好文 > 详细

30.内存管理

时间:2015-08-17 19:44:40      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:内存

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;
}

本文出自 “冯宋林的博客” 博客,谢绝转载!

30.内存管理

标签:内存

原文地址:http://fengsonglin.blog.51cto.com/9860507/1685329

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!