# Find the size of an array

Could anyone tell me how to find the size of an array?

for example if we have

int main()
{
A []={new A(), new A(), new A()};
printf("Size of Array:%d", //function that finds the size of the array(should give 3 in this case));

}

class A
{
public:
A();
};

A::A(){}

is there a function which finds out the size of array?
###### Who is Participating?

Commented:
try this--->

u can simply put A[] =,

u have to mention the identifier also, the valid statement is A *a[]=;

#include <stdio.h>

class A
{
public:
A();
};

A::A(){}
int main()
{

A *a[]={new A(), new A(), new A()};
printf("Size of Array:%d",sizeof(a)/sizeof(a[0])); //function that finds the size of the array(should give 3 in this case));

}

0

Commented:
srinims is right, but you'll notice that you can't determine the size of the array in a function which has the array passed to it as a parameter. Weird, isn't it?

C and C++ have an underhand way of dealing with arrays. C programmers say that they are passed as "references", because "reference" doesn't have the meaning in C that it has in C++. C++ programmers say that you shouldn't be using arrays, because they are evil and bore you with the wonderfulness of vectors.

In C++ you can treat an array passed as a parameter to a function as a pointer. You can even increment it!

--------8<--------
#include <iostream>
using std::cout;

void f(char[10]);

int main()
{
char a[10];
for (int i = 0;i < 10;i++)
a[i] = 'a'+i;
cout << a[5] << '\n';
cout << (a+1)[5] << '\n';
//a++;      // Can't do this!
cout << a[5]
<< " size "
<< " size " << sizeof(a)/sizeof(*a)      /* This looks sensible */
<< '\n';

f(a);
}

void f(char a[10])
{
cout << a[5] << '\n';
cout << (a+1)[5] << '\n';
cout << a[5]
<< " size " << sizeof(a)/sizeof(*a)      /* Deceive yourself with this */
<< '\n';
a++;      // Can do this!
cout << a[5]      /* Deceive yourself with this */
<< " size " << sizeof(a)/sizeof(*a)      /* Deceive yourself with this */
<< '\n';

}
--------8<--------
0

Author Commented:
Thanx for you helps!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.