`
Riddick
  • 浏览: 632764 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

calloc(), malloc(), realloc(), free()

 
阅读更多

void *calloc(size_t nobj, size_t size);
分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;
若内存不够,则返回NULL. 该空间的初始化大小为0字节.

char *= (char *) calloc(100sizeof(char));


void *malloc(size_t size);
分配足够的内存给大小为size的对象, 并返回指向所分配区域的第一个字节的指针;
若内存不够,则返回NULL. 不对分配的空间进行初始化.

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


void *realloc(void *p, size_t size);
将p所指向的对象的大小改为size个字节.
如果新分配的内存比原内存大, 那么原内存的内容保持不变, 增加的空间不进行初始化.
如果新分配的内存比原内存小, 那么新内存保持原内存的内容, 增加的空间不进行初始化.
返回指向新分配空间的指针; 若内存不够,则返回NULL, 原p指向的内存区不变.
realloc()中,ptr=NULL时等于malloc;size=0时等于free。

char *= (char *) malloc(sizeof(char));
p
= (char *) realloc(p, 256);


void free(void *p);
释放p所指向的内存空间; 当p为NULL时, 不起作用.
p必先调用calloc, malloc或realloc.

free(p);
分享到:
评论

相关推荐

    浅谈malloc,calloc,realloc.pdf

    C中堆管理—浅谈malloc,calloc,realloc 函数之间的区别 详情:http://blog.csdn.net/fjb2080

    C语言中 malloc,calloc,realloc的区别

    C语言中 malloc、calloc、realloc的区别 (1)C语言跟内存分配方式 从静态存储区域分配.  内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量. 在栈上创建  在执行...

    lwmem:用于具有内存限制的嵌入式系统的轻型动态内存管理器库。 它实现了malloc,calloc,realloc和free函数

    lwmem:用于具有内存限制的嵌入式系统的轻型动态内存管理器库。 它实现了malloc,calloc,realloc和free函数

    C内存分配管理函数

    C/C++ 内存管理 malloc calloc free realloc

    C语言中堆空间的生成与释放详解

    堆空间的分配和释放 #include  malloc、calloc、realloc、free malloc void *malloc(size_t size); 功能:在堆中分配 size 字节的连续空间 参数:size_字节数 返回值:成功返回分配空间的首地址,失败返回 ...

    C语言动态内存分配之malloc与realloc区别

    在程序的执行期间分配内存时,内存区域中的这个空间称为堆(heap)。还有另一个内存区域,称为栈(stack),...  C函数库中的malloc和free分别用于执行动态内存分配和释放。这两个函数的原型如下所示,他们都在头文件st

    C 语言库函数使用手册

    字符串函数 bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat strchr strcmp strcmpi strcpy ...calloc free malloc realloc

    C语言库函数速查 CHM

    字符串函数 bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat strchr strcmp strcmpi strcpy ...calloc free malloc realloc

    嵌入式系统/ARM技术中的浅谈malloc与 kmalloc、cmalloc、realloc、new 的区别

     Malloc 返回一块内存地址的指针,否则会返回空指针null,这里要注意的是,当内存不再使用的时候,用free()函数进行对内存的释放。  2.calloc  作 用:calloc()函数有两个参数,分别为元素的数目和每个元素...

    C语言之free函数以及野指针介绍

    【FROM MSDN && 百科】原型:void free(void *ptr);#include或#include <malloc>Deallocate space in memory释放ptr指向的...A block of memory previously allocated using a call to malloc, calloc or realloc is

    C语言函数速查手册

    C语言常见的函数速查 字符串函数 bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat strchr ...calloc free malloc realloc

    C语言函数速查

    Knocker 2004.7.7 版本 0.5 字符串函数 bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat ...calloc free malloc realloc

    MallocSystem:Malloc, Realloc, Calloc, 免费重温 Polytech 的系统课程

    fake-malloc.c:分配库的一个版本,它使用真实版本的malloc , free , ... my-malloc.h:要构建的库的头文件 test-fake:与fake-malloc.c链接的 test-malloc 版本 test-malloc-eg:测试程序的 GNU/Linux x86_64 可...

    wasm-malloc:用于WebAssembly的mallocfree

    wasm-malloc WebAssembly的malloc / free的简单实现。 堆是一个双链表,如果有必要/可能,将合并或拆分块。 目前,不支持realloc。 malloc / calloc无法正确对齐内存。 由于WebAssembly MVP不支持缩小线性内存,因此...

    内存分配管理的代码用C实现

    自己写的内存分配管理的代码,用C实现 主要是解决自己分配的内存忘记释放的问题,自己定义了几个函数取代了malloc,calloc,realloc,free这几个函数,尽量跟原有用法一致。 头文件mypool.h

    易语言pcre正则应用模块

    易语言pcre正则应用模块源码,pcre正则应用模块,GetTextAddress,GetDataAddress,pcre_get_extra,pcre_set_extra,pcre_get_callout_block,pcre_set_callout_block,get_ints,set_ints,malloc,calloc,realloc,free,pcre_...

    MemLeak内存泄漏检测工具

    MemLeak 是一个C语言内存泄漏检测工具... 原理是利用 C 语言的宏调用来替代原有的函数调用, memleak 维护了一个链表,在这个链表中保存着程序中对内存函数调用的记录,这些函数包括:malloc、calloc、realloc、free。

    Arduino-lwmem.zip

    它实现malloc、calloc、realloc和free函数lightweight动态内存管理器,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造商的欢迎,Arduino通过开源系统提供了很多灵活性。

    指针是C语言可以用来直接访问内存地址

    在C语言中,我们可以使用malloc、calloc和realloc等函数来动态分配内存空间。这些函数返回一个指向分配内存空间起始位置的指针,我们可以通过这个指针来访问和操作这块内存空间。同时,我们还可以使用free函数来释放...

    lmdb:带有 clang 和 jemalloc 的闪电内存映射数据库 (LMDB)

    malloc 、 calloc 、 realloc 、 free 、 strdup和strndup被替换为je_*等价物。 je_strdup和je_strndup一个je_utils.c文件。 单元测试中使用的testdb移动到/tmp 。 Vagrant 和其他 VM 共享文件系统不能mmap 。

Global site tag (gtag.js) - Google Analytics