c/c++语言开发共享是否有必要对malloc和calloc进行类型转换


可能重复:
我是否施放了malloc的结果?

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

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

    malloc和calloc的返回值是多少?

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

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

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

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

    它适用于malloccalloc

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

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

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

    在C中,不建议转换这些函数的返回值。

    在C ++中,必须进行强制转换。

    malloc()和calloc()的返回值是多少?

     void *malloc(size_t size); void *calloc(size_t nmemb, size_t size); 

    void*由两个函数返回。

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

    不。不需要进行类型转换。 malloc()calloc()函数返回一个指向已分配内存的指针,该内存适合于任何类型的变量。 出错时,这些函数返回NULL 。 通过成功调用大小为零的malloc() ,或通过成功调用nmemb或大小等于零的calloc() ,也可以返回NULL

      以上就是c/c++开发分享是否有必要对malloc和calloc进行类型转换相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/553083.html

      (0)
      上一篇 2021年1月26日
      下一篇 2021年1月26日

      精彩推荐