// Alternately, use the containers from the STL, e. g. std::array or std::vector.
// These containers behave very similar to standard arrays, but you can query their
// size at runtime, no problem.
std::vector<int> array;
array.pushback(2);
array.pushback(7);
array.pushback(344);
array.pushback(45);
array.pushback(89);
array.pushback(28);
std::size_t length = array.size(); // easy!
If all you have is the pointer to the first element then you can't:
int array[6]= { 1, 2, 3, 4, 5, 6 };
void main()
{
int *parray = &(array[0]);
int len=sizeof(array)/sizeof(int);
printf("Length Of Array=%d
", len);
len = sizeof(parray);
printf("Length Of Array=%d
", len);
getch();
}
// output: Will give two different values: 6, and 4.
// If you have s statically allocated array, you can determine the number of elements
//from the arrays name. However, if that is the case, and you don't use C++ functionality,
//then most likely there wouldn't be a need for this in the first place.
int array[10];
std::size_t length = 10; // big surprise, that number is right in the definition!
// C++ program to find size
// of an array by using a
// pointer hack
#include <bits/stdc++.h>
using namespace std;
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6 };
int size = *(&arr + 1) - arr;
cout << "Number of elements in arr[] is " << size;
return 0;
}