黑马程序员技术交流社区

标题: 内存分配函数 [打印本页]

作者: wtj900    时间: 2015-9-6 20:11
标题: 内存分配函数
本帖最后由 wtj900 于 2015-9-6 20:15 编辑

1)malloc 函数
   格式: void * malloc(unsigned size);
   从内存的堆区分配大小为size个字节的连续的内存空间
   如果内存分配成功  返回内存的首地址
             失败  NULL
   注意:malloc 申请的内存空间,如果我们不赋值是垃圾数
   例:int *p = (int *)malloc(4*sizeof(int));   //16个字节
               memset(p,'a',16);//使用一个函数给malloc申请的空间进行初始化

2)callloc 分配指定块数和长度的内存空间
   格式:calloc(块数,长度)
   calloc 它可以帮我们自动的初始化为0
   例:int *p = (int *)calloc(4, sizeof(int));   //16个字节

3)realloc 函数可以给已经存在的空间扩充大小
      例:p = realloc(p, 40*sizeof(int));

4)应该使用free()函数释放内存空间
   格式:free(要释放的空间的首地址)
   free(p);
   free(p)以后,p是一个野指针,要执行下面的操作
   p = NULL;


   


作者: kylmetz    时间: 2015-9-6 20:17
好的,受教了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2