C中怎样整形数组的长度
C中怎样求一个整形数组的长度
各位大侠,就是我想写一个函数,专门求整形数组的长度的,功能是只需要给定数组名就可以求出数组的长度,但是整形数组里不像字符数组中有 '\0'作为结束标志,所以不知怎么办了
------解决方案--------------------
int GetNum(int a[])
{
int n=0;
while (a[n]!=-858993460)
{
n++;
}
return i;
}
------解决方案--------------------
才发现有问题,还是得用结构体,转换赋值函数再弄下应该就可以了
------解决方案--------------------
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
各位大侠,就是我想写一个函数,专门求整形数组的长度的,功能是只需要给定数组名就可以求出数组的长度,但是整形数组里不像字符数组中有 '\0'作为结束标志,所以不知怎么办了
------解决方案--------------------
int GetNum(int a[])
{
int n=0;
while (a[n]!=-858993460)
{
n++;
}
return i;
}
------解决方案--------------------
才发现有问题,还是得用结构体,转换赋值函数再弄下应该就可以了
struct XInt
{
void * p;
int ival;
XInt(int x)
{
ival=x;
p=NULL;
}
};
int Size_XInt(XInt * pXInt)
{
int n=0;
while (pXInt[n].p ==NULL )
{
n++;
}
return n;
}
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
XInt a[] = {1,2,4};
//显示元素个数
ShowMessage( Size_XInt(a) );
//不过要取某位置的数据就得用
a[0].ival;
}
------解决方案--------------------
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))