相关疑难解决方法(0)

如何可靠地获得C型阵列的大小?

如何可靠地获得C风格数组的大小?通常建议的方法似乎是使用sizeof,但它在foo函数中不起作用,x传入的位置:

#include <iostream>

void foo(int x[]) {
  std::cerr << (sizeof(x) / sizeof(int)); // 2  
}

int main(){
    int x[] = {1,2,3,4,5};
    std::cerr << (sizeof(x) / sizeof(int)); // 5                              
    foo(x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个问题的答案建议,sizeof但他们并没有说它(显然?)如果你传递数组不起作用.那么,我是否必须使用哨兵?(我不认为我的foo函数的用户总是可以信任在最后放置一个标记.当然,我可以使用std::vector,但是我没有得到漂亮的速记语法{1,2,3,4,5}.)

c c++ arrays size

10
推荐指数
2
解决办法
6398
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

size ×1