我声明了以下数组:
char* array [2] = { "One", "Two"};
Run Code Online (Sandbox Code Playgroud)
我将此数组传递给函数.如何在函数中找到此数组的长度?
Set*_*gie 17
将数据传递给函数后,无需额外的努力就无法找到数组的长度.你需要:
vector
(推荐).1如果您想知道,大多数人都对C字符串以这种方式工作的事实感到遗憾.
传递数组时,没有一种简单的方法可以确定函数中的大小.
您可以将数组大小作为参数传递,也可以 使用std :: vector <std :: string>
如果您感觉特别喜欢冒险,可以使用一些高级模板技术
简而言之,它看起来像
template <typename T, size_t N>
void YourFunction( T (&array)[N] )
{
size_t myarraysize = N;
}
Run Code Online (Sandbox Code Playgroud)