【发布时间】:2012-11-24 15:31:26
【问题描述】:
我尝试为此编写自己的函数,但结果错误
#include <iostream>
using namespace std;
template<typename T>
int array_length(T v[]) {
return (sizeof v)/sizeof(T);
}
int main() {
int v[] = {1, 2, 3, 4};
cout << array_length(v) << endl;
return 0;
}
【问题讨论】:
-
gist.github.com/3959946 查看最后一个函数。
-
@R.MartinhoFernandes:即使编译器自己在编译时知道大小,该函数也会在运行时给出大小。因此,我不会说这是一个好的实现。
-
他只想要运行时的数组长度。
-
到目前为止发布的答案仅适用于在编译时已知大小的数组。 AFAIK 没有可移植的方法来找出动态分配数组的长度(自己记住它是安全的)。
标签: c++