只知道数组的指针,用什么函数求数组的长度

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:39:23
int f(int *t)
{
return ?
}
int main()
{
int *t = new int[10];
int x = f(t);
//用什么函数,使这里的x等于10
}
我用过一个函数,要另外包含头文件的,函数大概是_size_之类的,参数是一个结构体的指针,返回是这个指针指向的结构的数量,能够完成我的问题

答案是:
不可能!
在C语言最基础的教程(谭浩强的)中都提到了要传数组的话,必须要长度参数
函数
int f(int *t)
我们只知道以下信息:
1 函数叫 f
2 函数有一个参数,是 int* 类型
3 函数返回值为 int 类型
这三个信息已经是函数的全部信息了,不可能得出楼主想要的东东
^_^

sizeof()试一下,如果不行就只能是自己写了
你也可以写一个这样的函数放到某一个头文件中以后用着方便

没有办法

如果是 int t[10] 定义形式。
可以用 int len = sizeof(t)/sizeof(int);得到长度。

int *t 好像没有办法。。。

不行的。因为指针退化是C/C++的一个特性。所以我们通常都必须传递一个大小参数。

你说的那个方法换汤不换药,本质还是跟传递一个多余参数相同,只不过把这个参数整合到了一个结构体中使得可以一次搞定罢了。