Number of elements in static array and dynamic array

前端 未结 1 944
广开言路
广开言路 2020-12-18 05:33

What is the quickest way to find the number of elements in a static array and dynamic array?

相关标签:
1条回答
  • 2020-12-18 06:06

    There is no way of finding the number of elements in a dynamically created array. For a non-dynamic array, you can use sizeof(array)/sizeof(type). However, this is not as useful as it seems:

    void f( int a[] ) {
       // sizeof(a) will be the size of a pointer, probably 4
    }
    
    int main() {
         int a[100];
         // sizeof(a)/sizeof(int) will be 100
         f( a );
    }
    

    This is because arrays decay into pointers when passed to functions. So in both cases, you probably need to remember the size of the array and pass it to functions as a separate parameter. So a function to sum an array (for example) would look like this:

    int sum( int a[], int n ) {
        int total = 0, i;    
        for ( i = 0; i < n; i++ ) {
            total += a[i];
        }
        return total;
    }
    
    0 讨论(0)
提交回复
热议问题