形参中的数组传递的是数组的首地址,如果函数体要使用数组的长度,需要用另一个形参传递,当要用到传递的数组的元素时,要重新建一个数组,并将原数组的值拷贝过去,如下:
void fun(int a[] ,int len)
{
int * b=(int *)malloc(sizeof(int)*len);
memcpy(b,a,len);
}
或
void fun(unsigned char a[], int len)
{
unsigned char * b=new unsigned char[len+1];//+1应该是因为需要存储"/0"吧
memcpy(b,a,len);
}