一个学生问这个问题,我不知道。 猜测包括:“计数”,“清除”,“分块”,“完整”,… 标准库文档没有说明它的含义,也没有类似的命名函数来指示模式。 有谁知道实际的词源,也许有一个权威的参考来支持它?
有没有一个电话,我可以让new来有零,如calloc内存?
我们的代码包含一个POD(普通的旧数据结构)结构(它是一个基本的C ++结构,它有其他结构和PODvariables,需要在开始时进行初始化)。 根据我所阅读的内容 ,似乎是: myStruct = (MyStruct*)calloc(1, sizeof(MyStruct)); 应将所有值初始化为零,如下所示: myStruct = new MyStruct(); 但是,当结构以第二种方式初始化时,Valgrind稍后会在使用这些variables时抱怨“条件跳转或移动取决于未初始化的值”。 我的理解是有缺陷的,还是Valgrind误报?
做什么有什么区别: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); 要么: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); 什么时候使用calloc over malloc是一个好主意,反之亦然?