内存分配函数

1.内存分区,内存地址从低到高排列:代码区、常量区、静态区、堆区、栈区。

2.c中提供堆区供给开发者分配内存空间,动态内存分配函数malloc,calloc,realloc

  (1)malloc函数的使用,原型为void *malloc(int length)参数为分配内存空间的大小:

   //将内存分配4个字节给一个int型指针

  //返回值为任何指针

  //考虑到不同平台,可以使用sizeof(char)来确定一个字节

     int *p = malloc(4);

     *p = 4;

    //要开辟一块 内存空间,首先要明白开发这块内存空间要干什么事情

    //malloc函数   的内存的分配不负责清空内容

     char *str = malloc(sizeof(char) * 8);

     strcpy(str, "xiansen");

     int *array = malloc(sizeof(int) * 6);

    //对内存的释放

//无返回值,有一个参数,任意类型的指针

//释放内存只是对内存标记为可用,并没有对内存进行清空

     free(p);

     free(str);

     free(array);

 (2)calloc与realloc函数

//calloc函数在奉陪内存的时候清空所有内容效率略低

 //参数1:分配多少内存
//    参数2:每个内存多大
//   char *str= calloc(2, sizeof(char));
//    从新分配内存大小
//    参数1:给谁分配
//    参数2:重新分配大小
//    printf("%p\n", str);
//    str =  realloc(str, 100);
3.内存操作函数

初始化内存:void *memset(void *s , int c , size_t n) //从s地址指向的内存开始初始化n个字节的内容为c;

拷贝内存:void *memcpy(void *dest,const void*source , size_t n) //从source指向的地址开始拷贝到dest拷贝n个字节;

内存比较:int memcmp(const void *buf1, const void*buf2, unsigned int count) 比较buf1,buf2的内存是否相同,比较count个字节;



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值