是否需要输入

可能重复:
我输入malloc的结果吗?

我在Google上寻找malloccalloc类型转换的原因。 但是,我只发现malloc的类型转换没有必要,因为它返回void指针,但calloc呢 。 这也是calloc的原因?

现在,如果我们回到第一点,关于malloccalloc的返回值。 然后,我发现,两者都返回分配的空间。 所以,我在这里有点困惑。 所以,我的问题是

  • malloccalloc的返回值是什么

  • 是否需要输入malloccalloc 。 为什么?


  • malloc和calloc的返回值是什么?

    它是一个指向voidvoid* )的指针。

    是否需要输入malloc和calloc。 为什么?

    不,因为从指针到void的转换到指向Object的指针是隐式的。

    C11(n1570),§6.3.2.3指针
    指向void的指针可以被转换为指向任何对象类型的指针,

    这对于malloccalloc都是正确的。


    malloc()calloc()返回void * ,它可以分配给任何指针类型。在C中,不需要对void*进行类型转换,因为它是由编译器隐式地完成的。但是在c ++中,如果你不会强制转换


    malloccalloc的返回值是一个void* 。 这些函数分配的堆内存空间的地址。

    这两个函数都分配内存。 它们之间的唯一区别是

  • malloc只是分配内存。
  • calloc分配内存并将其初始化为0。
  • 在C中,不建议使用这些函数的返回值。

    在C ++中,它是强制性的。

    链接地址: http://www.djcxy.com/p/28359.html

    上一篇: is it necessary to type

    下一篇: free a casted pointer