linux 内存分配函数

名字
    calloc,malloc,free,realloc -分配和释放动态内存
概要
    #include <stdlib.h>
    void *calloc(size_t nmemb, size_t size);
    void *malloc(size_t size);
    void free(void *ptr);
    void *realloc(void *ptr, size_t size);
描述
    callod()为一个大小为nmemb每个元素大小为size的数组分配内存并返回指向分配的内存的指针。该片内存被清零。如果nmemb或者size是0,calloc返回或者NULL或者一个唯一的指针值,该值能被成功的传递给free().
    malloc()分配size字节大小并返回一个指针指向分配的内存。内存没有清除,如果size是0,malloc或者返回NULL或者一个唯一的指针值,该值能被成功的传递给free().
    free()释放ptr指向的内存空间,该指针ptr必须是前面malloc,calloc,realloc调用返回的值。否则,如果前面调用过free,挥发生未定义的事情。如果ptr是空,没有任何操作被执行。
    realloc()改变ptr指向的内存块的大小到size字节。内容将保持不变;新分配的内存不会初始化。如果ptr是空,调用同于malloc(size),如果size是0,ptr不为空,调用同于free(ptr),除非ptr为空,它必须由更早的调用如malloc,calloc,realloc返回,如果指向的区域移动了,free(ptr)就执行了。
返回值
    malloc(),calloc()返回一个指针指向分配的内存,该内存按变量的类型对齐。错误的话,这些函数返回空。NULL也可能是malloc的成功调用返回的,size为0的时候。或者nmemb或size为0的对calloc的调用也返回NULL。
    free()不返回值。
    realloc()返回一个指针指向新分配的内存,内存按任何类型的变量对齐,也许和ptr不同,请求失败时返回NULL,如果size是0,NULL或一个合适的指针将传给free()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值