关于C#:是否需要输入malloc和calloc

is it necessary to type-cast malloc and calloc

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Do I cast the result of malloc?

我在google上查找malloc和calloc类型转换的原因。但是,我只发现malloc的类型转换是不必要的,因为它返回空指针,但是calloc呢?这也是calloc的原因吗????

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

  • What is the return value of malloc and calloc

  • Is it necessary to type-cast malloc and calloc. And why ?


  • What is the return value of malloc and calloc?

    它是指针对void(void*)。

    Is it necessary to type-cast malloc and calloc. And why ?

    在,因为转换到从指针到指针的对象缩小到void是隐式的。

    C11 (n1570), § 6.3.2.3 Pointers
    A pointer to void may be converted to or from a pointer to any object type.

    这是一个正确的是malloccalloc


    malloc()or calloc()收益void *可以指定任何指针类型。在C,这是不必要的,因为它是typecast void*implicitly由编译器完成。但在C + +,它将给你,如果你不会typecast误差


    返回的值是一malloccallocvoid*。该地址空间分配的堆内存(这些功能。

    这两个函数分配的内存。唯一的是,他们之间的差异

    • 简单的allocates malloc的内存。
    • calloc allocates记忆和它的initializes 0。

    不推荐对其铸态中的这些函数返回值。

    在C + +,它是强制性的在铸造。


    What is the return value of malloc() and calloc()?

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

    是由两个void*返回的功能。

    Is it necessary to type-cast malloc and calloc. And why ?

    它不需要在typecast。。。。。。。。。。。。。。malloc()calloc()函数返回的指针和内存的分配是一个什么样的suitably对准任何变量。这些函数返回NULL在线误差。NULL也可能是由一malloc()呼叫返回到零和的大小,或通过电话与一calloc()nmemb大小或等于零。