`
fujinbing
  • 浏览: 233511 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

calloc 和 malloc

 
阅读更多
aa
malloc 和 calloc
malloc
函数原型: extern void *malloc(unsigned int num_bytes);
函数描述: 分配长度为num_bytes字节的内存块
入口参数: num_bytes    内存块的大小(单位为字节)
出口参数: 无(或为空)
返回值:    如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
函数说明    不再使用时一定要记得释放,调用函数free
使用示例:
  char *pTemp = NULL;
  pTemp = (char *)malloc(10 * sizeof(char));
个人理解:
[1]申请空间大小时,利用sizeof做出计算,这样保证会分配正确数量的内存空间;
[2]malloc返回的内存是没有被初始化的,所以可能包含着任何的随机垃圾,应该在其后马上调用memset函数进行初始化为0的操作;

calloc
函数原型: void *calloc(size_t nelem, size_t elsize);
函数描述: 分配指定长度的内存空间
入口参数: nelem    元素的个数(如为10个char申请空间,则为10)
               elsize     元素所占用的字节(如为char申请,则为sizeof(char))
出口参数: 无(或为空)
返回值:    如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
函数说明    不再使用时一定要记得释放,调用函数free
使用示例:
char *str = NULL;
str = calloc(10, sizeof(char));
个人理解:
[1]calloc实际上也只能算作是malloc的一种简单的封装;
[2]它会自动的把动态分配的内存进行清0操作,并且保证了分配数量的正确,所以建议使用。

分享到:
评论

相关推荐

    calloc和malloc的区别

    本文叙述了calloc和malloc用法的区别,函数malloc()和函数calloc()的主要区别是前者不能初始化所分配的内存空间,而后者能。

    C语言malloc()与 calloc()的区

    C语言malloc()与 calloc()的区

    malloc和calloc区别

    malloc和calloc区别 函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。 malloc()函数有一个参数,即要分配的内存空间的大小: void *malloc(size_t size); calloc()函数有两个参数,分别为元素...

    利用数组模拟C语言malloc/calloc

    利用C语言进行模拟实现calloc/malloc的方程,可以更好的学习C语言内存管理,

    malloc,realloc,calloc的总结.xlsx

    个人总结各类博客和资料里关于malloc,calloc,realloc的对比

    xin\malloc和calloc区别

    xin\malloc和calloc区别,经典归纳

    C/C++: Inline function, calloc 对比 malloc

    以下是对c/c++中的malloc函数与calloc函数的区别以及它们之间的联系进行了介绍,需要的朋友可以过来参考下

    malloc和calloc的区别

    本文档详细讲述了c语言中malloc和calloc的区别,非常详细,值得学习

    浅谈malloc,calloc,realloc.pdf

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

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

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

    c语言函数集合

    c语言函数集合,isalpha、atol、atof、calloc、malloc等,包括所有C语言的库函数,即查即用

    sbrk(),mmap(),malloc(),calloc()的异同

    本文详细解析类操作系统底层的内存分配机制。

    C 语言库函数使用手册

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

    C语言库函数速查 CHM

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

    wasm-malloc:用于WebAssembly的mallocfree

    malloc / calloc无法正确对齐内存。 由于WebAssembly MVP不支持缩小线性内存,因此无法释放释放的内存。建造这需要LLVM工具链(编译为包括实验wasm32目标,请参见 )。 llvm二进制目录的路径必须使用LLVM_ROOT环境...

    C语言函数速查手册

    C语言常见的函数速查 字符串函数 bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat strchr strcmp ...calloc ...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

    c语言中malloc、realloc与calloc 的区别以及联系

    以下是对c语言中的malloc函数,realloc函数与calloc函数的区别以及它们之间的联系进行了介绍,需要的朋友可以过来参考下

Global site tag (gtag.js) - Google Analytics