Что самый быстрый путь состоит в том, чтобы найти числом элементов в статическом массиве и динамическом массиве?
Невозможно определить количество элементов в динамически созданном массиве. Для нединамического массива вы можете использовать sizeof (array) / sizeof (type)
. Однако это не так полезно, как кажется:
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 );
}
Это потому, что массивы распадаются на указатели при передаче в функции. Так что в обоих случаях вам, вероятно, потребуется запомнить размер массива и передать его функциям как отдельный параметр. Таким образом, функция для суммирования массива (например) будет выглядеть так:
int sum( int a[], int n ) {
int total = 0, i;
for ( i = 0; i < n; i++ ) {
total += a[i];
}
return total;
}