c/c++语言开发共享为什么calloc指针类型是void *?

我读了一本C书。 但是不能理解那句话

如果调用calloc成功,则返回指向内存中数组基类的void *类型的指针;

这里,如果指向类型为void *的指针指向内存中数组的基数,那么array [0]的类型为void?

我想知道什么意思……

谢谢大家阅读我的问题,希望得到答复!

    我可以看出它是多么诱人,因为int *指向int ,那么void *应该指向void 。 但事实并非如此。 void *void之间确实没有任何有用的关系,因此最好将它们视为单独的概念。

    void * in C表示指向未指定类型的对象的指针。 如果你熟悉它,你可以把它想象成Java Object的C模拟。

    void *具有以下属性:

    void *是需要处理任意数据的函数的选择类型,如calloc()

    calloc返回void*因为:

    如果您使用:

     void* ptr = calloc(...); 

    它是有效的,但你不能使用*ptrvoid*不可解除引用指针必须转换为其他类型才能解除引用。 例如

     char* cptr = ptr; *cptr = 'a'; 

      以上就是c/c++开发分享为什么calloc指针类型是void *?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

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

      ctvol管理联系方式QQ:251552304

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

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐