繁体   English   中英

将 calloc vs malloc 用于结构的动态数组

[英]using calloc vs malloc for dynamic array of struct

我读过 calloc 和 malloc 之间的区别是 calloc 将 memory 初始化为声明类型的默认值。

  1. 对于struct,默认值是多少?
  2. 对动态结构数组使用 calloc 和 malloc 有区别吗?
  3. 结构的成员也会被初始化吗?

calloc()会将整个分配的内存范围初始化为零。 它与您要投射到的类型无关。

malloc()使内存的内容处于未指定状态。

calloc功能不适用于给定类型初始化内存的默认值,而事实上它不能因为它知道有关该内存将被用于类型一无所获。

所做的设置内存的所有位0在大多数实现你很可能会遇到,这意味着,整数和浮点类型的值将是0和指针类型将是NULL。 关于结构和/或数组,这将适用于任何成员,此外,结构内的任何填充也将所有位设置为 0。

calloc() 会将整个分配的内存范围初始化为零。 它与您要投射到的类型无关。 Malloc() 函数将创建用户指定大小的单个内存块。 Calloc() 函数可以为一个变量分配多个内存块。 Malloc 函数包含垃圾值。 calloc 函数分配的内存块总是初始化为零。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM