C语言_malloc()函数

malloc函数的作用是开辟一块地址空间来使用,它包含在标准库:

#include<stdlib.h>

malloch返回值为void*,即空类型指针,一般我们都要对结果进行类型转换,如:

(int*) malloc(sizeof(int)*num)

通过malloc申请的空间是以字节为单位的,如malloc(1*1024*1024)则申请了1MB的空间;

如果申请失败了,如空间已满,则会返回0;

下面用一个简单的实例说明malloc函数的用法:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int num;
    int *a;
    scanf("%d",&num);
    a=(int*)malloc(sizeof(int)*num); 
    free(a);
}


因为我们的a的类型是int*,而malloc返回的是void*,所以我们要通过(int*)来对malloc进行类型转换来得到我们需要的空间;

与malloc相对应的函数是free()

void free(void *ptr)
free的作用是将用malloc函数开辟的空间释放,一般来说free函数是必须的,只要你用了malloc,就要free;

传入free的指针只能是使用malloc对应的那个指针,如果传入其他指针,是一定会报错的(空指针不会报错,因为free本质也是一个函数,它内部有一个检测程序);

但是我们平常写的小程序,我们不去free是没有影响的,因为程序在运行完后自动就将所有的空间全部释放了,但当我们在搞一个比较大的项目的时候,比如一个一直工作的服务器,这时候我们不去free,就会有很大的影响,程序一直运行,那malloc就会反复的开辟空间,直到空间被占满,然后就会报错中断程序。

所以养成free和malloc配套使用的习惯还是比较关键的
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值