关于C中的malloc和calloc函数的困惑

杰耶什

malloc功能声明

void *malloc(size_t size);

在这里,malloc返回void指针所以,一个void函数什么都不返回,然后

为什么我们将malloc(函数调用)值分配给指针?

例如:

int *ptr;
ptr = malloc(10 * sizeof (*ptr));
^^^

malloc()???的返回值是什么

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

对于语言设计者而言,这可能是一个不幸的选择,但是他们决定重用voidvoid*构造,这几乎颠倒了它的含义:虽然void表示“不返回任何内容”,但是void*表示“返回任何内容的指针”。

本质上,void*是指向未指定对象的指针。在取消引用之前,必须将其转换为指向特定类型的指针。这正是mallocor所返回的指针的类型calloc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于C ++中rand()函数的困惑

来自分类Dev

关于C中的int,char和EOF的困惑

来自分类Dev

关于C中的fwrite()和fread()参数的困惑

来自分类Dev

关于C malloc函数的问题

来自分类Dev

关于返回函数和Monad的困惑

来自分类Dev

关于Java中构造函数链接的困惑

来自分类Dev

关于JavaScript中匿名函数声明的困惑

来自分类Dev

同样,C ++函数指针。关于语法的困惑

来自分类Dev

关于简单 C++ 函数的困惑

来自分类Dev

关于函数中变量和参数的范围和可见性的困惑

来自分类Dev

关于内存分配,C malloc/calloc 依赖于 Linux mmap/malloc 还是相反?

来自分类Dev

关于TensorFlow中的等级和形状的困惑

来自分类Dev

关于 JavaScript 中“this”和原型设计的困惑

来自分类Dev

关于realloc函数的困惑

来自分类Dev

关于内联函数的困惑

来自分类Dev

关于函数解释的困惑

来自分类Dev

关于C ++中的内存释放的困惑

来自分类Dev

关于 C 中宏扩展的困惑

来自分类Dev

关于sed和'>'的困惑

来自分类Dev

malloc和calloc之间的区别?

来自分类Dev

关于从函数和移动返回大值的困惑

来自分类Dev

关于c ++继承的困惑

来自分类Dev

我应该在C中2D数组的malloc和calloc之后检查NULL指针吗?

来自分类Dev

JS中关于多参数多箭头函数的困惑

来自分类Dev

关于 Tensor Flow 中函数 assign_add() 的困惑

来自分类Dev

关于JavaScript中的函数即价值概念的困惑

来自分类Dev

关于 glVertexAttrib... 函数的困惑

来自分类Dev

C结构和malloc函数

来自分类Dev

关于scala中可变和不可变集合的困惑