【发布时间】:2022-06-16 22:03:51
【问题描述】:
哪个更好/更高效 - calloc 或 malloc?
我想初始化结构,它也引用同一结构的其他实例
变体 1
person* new_person(){
struct _person* person = calloc(1, sizeof(person));
person->name = NULL;
person->child = NULL;
return person;
}
变体 2
person* new_person(){
struct _person* person = malloc(sizeof(person));
person->name = NULL;
person->child = NULL;
return person;
}
结构
typedef struct _person{
*void name;
struct _person* child;
}person;
【问题讨论】:
-
这能回答你的问题吗? Difference between malloc and calloc?
-
关于这两个函数的文档告诉你什么?应该清楚地说明差异。关于什么更有效:如果您始终为每个成员分配一个值,为什么要浪费时间为其中一个功能提供的一些额外服务?仅当您无论如何都不为所有成员分配正确的值时,这才有意义。