NULL

解决方案 »

  1.   

    这位台兄,只要你这个数组不是动态数组,就可以用sizeof确定数组的大小,这没有疑问。
    int  array[] = { 1, 2, 3, 4, 5 };     // sizeof( array ) is 20 
                                          // sizeof( array[0] ) is 4 
    size_t  sizearr =                        // Count of items in array
       sizeof( array ) / sizeof( array[0] );
      

  2.   

    传到一个函数里 sizeof 就不灵了,比如foo(int array[10])
    {
        sizeof(array) // == 4
    }你应该在调用函数的时候将数组大小传进去:foo(int array[], int size)
    {
        // access array 0 ~ size - 1
    }
      

  3.   

    void Yfunction(int array[], int size);只能传参,数组在做形参时将退化为类似指针,在函数中如果用 sizeof(array),一般会得到 4,即指针的大小
      

  4.   

    好吧,那么我顺便问一下,为什么一些API使用的结构体中要用一个其中的一个成员放这个结构体的大小呢?
    在这些API涵数中可以很容易的使用sizeof来测量。
    这不是多此一举吗?