A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

常见动态内存分配的函数
1.malloc

使用方法 void *malloc (unsigned size) ,size是分配的字节数。包含在库函数stdlib.h中。
作用:在内存的堆区分配一个大小为size的连续空间。如果分配成功,返回新分配内存的首地址,否则返回NULL。

#include <stdio.h>
#include <stdlib.h>

int main(){
       
        int *p = (int *)malloc(4*sizeof(int));
       
        if(p!=NULL){
               
                //内存申请成功
                               
        }else{
               
                //申请失败

        }
       
        free(p);   //释放p的内存空间
        p = NULL;

        return 0;
}


2.calloc

格式:calloc(块数,长度)
       
        //分配4块,每块内存长度为4的内存空间
        int *p = (int *)calloc(4,sizeof(int));

注意事项:可以帮分配的内存空间初始化为0



3.relloc

作用:可以给已经存在的空间扩充大小。

#include <stdio.h>
#include <stdlib.h>

int main(){
       
        int *p = (int *)malloc(4*sizeof(int));
       
        //扩充p的大小,首地址可能变也可能不变
        p = relloc(p,40*sizeof(int));


        if(p!=NULL){
               
                //内存申请成功
                               
        }else{
               
                //申请失败

        }
       
        return 0;
}


1 个回复

正序浏览
我得好好补补
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马